Changeset 6f8a426 in mainline for arch/ppc32
- Timestamp:
- 2006-02-21T00:04:20Z (20 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 0fad93a
- Parents:
- cd92528
- Location:
- arch/ppc32
- Files:
-
- 1 added
- 6 edited
- 1 moved
-
Makefile.inc (modified) (1 diff)
-
include/context_offset.h (modified) (1 diff)
-
include/cpu.h (modified) (1 diff)
-
include/cpuid.h (moved) (moved from arch/ppc32/src/fpu_context.c ) (2 diffs)
-
include/fpu_context.h (modified) (1 diff)
-
src/asm.S (modified) (1 diff)
-
src/cpu/cpu.c (modified) (2 diffs)
-
src/fpu_context.S (added)
Legend:
- Unmodified
- Added
- Removed
-
arch/ppc32/Makefile.inc
rcd92528 r6f8a426 56 56 arch/$(ARCH)/src/context.S \ 57 57 arch/$(ARCH)/src/debug/panic.s \ 58 arch/$(ARCH)/src/fpu_context. c\58 arch/$(ARCH)/src/fpu_context.S \ 59 59 arch/$(ARCH)/src/ppc32.c \ 60 60 arch/$(ARCH)/src/dummy.s \ -
arch/ppc32/include/context_offset.h
rcd92528 r6f8a426 1 1 /* This file is automatically generated by gencontext.c. */ 2 2 /* struct context */ 3 #define OFFSET_SP 0x0 4 #define OFFSET_PC 0x4 5 #define OFFSET_R2 0x8 6 #define OFFSET_R13 0xc 7 #define OFFSET_R14 0x10 8 #define OFFSET_R15 0x14 9 #define OFFSET_R16 0x18 10 #define OFFSET_R17 0x1c 11 #define OFFSET_R18 0x20 12 #define OFFSET_R19 0x24 13 #define OFFSET_R20 0x28 14 #define OFFSET_R21 0x2c 15 #define OFFSET_R22 0x30 16 #define OFFSET_R23 0x34 17 #define OFFSET_R24 0x38 18 #define OFFSET_R25 0x3c 19 #define OFFSET_R26 0x40 20 #define OFFSET_R27 0x44 21 #define OFFSET_R28 0x48 22 #define OFFSET_R29 0x4c 23 #define OFFSET_R30 0x50 24 #define OFFSET_R31 0x54 25 #define OFFSET_CR 0x58 3 #define OFFSET_SP 0x0 4 #define OFFSET_PC 0x4 5 #define OFFSET_R2 0x8 6 #define OFFSET_R13 0xc 7 #define OFFSET_R14 0x10 8 #define OFFSET_R15 0x14 9 #define OFFSET_R16 0x18 10 #define OFFSET_R17 0x1c 11 #define OFFSET_R18 0x20 12 #define OFFSET_R19 0x24 13 #define OFFSET_R20 0x28 14 #define OFFSET_R21 0x2c 15 #define OFFSET_R22 0x30 16 #define OFFSET_R23 0x34 17 #define OFFSET_R24 0x38 18 #define OFFSET_R25 0x3c 19 #define OFFSET_R26 0x40 20 #define OFFSET_R27 0x44 21 #define OFFSET_R28 0x48 22 #define OFFSET_R29 0x4c 23 #define OFFSET_R30 0x50 24 #define OFFSET_R31 0x54 25 #define OFFSET_CR 0x58 26 27 #define OFFSET_FR14 0x0 28 #define OFFSET_FR15 0x8 29 #define OFFSET_FR16 0x10 30 #define OFFSET_FR17 0x18 31 #define OFFSET_FR18 0x20 32 #define OFFSET_FR19 0x28 33 #define OFFSET_FR20 0x30 34 #define OFFSET_FR21 0x38 35 #define OFFSET_FR22 0x40 36 #define OFFSET_FR23 0x48 37 #define OFFSET_FR24 0x50 38 #define OFFSET_FR25 0x58 39 #define OFFSET_FR26 0x60 40 #define OFFSET_FR27 0x68 41 #define OFFSET_FR28 0x70 42 #define OFFSET_FR29 0x78 43 #define OFFSET_FR30 0x80 44 #define OFFSET_FR31 0x88 45 #define OFFSET_FPSCR 0x90 -
arch/ppc32/include/cpu.h
rcd92528 r6f8a426 33 33 34 34 struct cpu_arch { 35 int version; 36 int revision; 35 37 }; 36 38 -
arch/ppc32/include/cpuid.h
rcd92528 r6f8a426 1 1 /* 2 * Copyright (C) 200 5 Jakub Vana2 * Copyright (C) 2006 Martin Decky 3 3 * All rights reserved. 4 4 * … … 25 25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 26 26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 *28 27 */ 29 28 30 #include <fpu_context.h> 29 #ifndef __ppc32_CPUID_H__ 30 #define __ppc32_CPUID_H__ 31 31 32 void fpu_context_save(fpu_context_t *fctx) 32 #include <arch/types.h> 33 34 struct cpu_info { 35 __u16 version; 36 __u16 revision; 37 } __attribute__ ((packed)); 38 39 static inline void cpu_version(struct cpu_info *info) 33 40 { 41 __asm__ volatile ( 42 "mfspr %0, 287\n" 43 : "=r" (*info) 44 ); 34 45 } 35 46 36 37 void fpu_context_restore(fpu_context_t *fctx) 38 { 39 } 47 #endif -
arch/ppc32/include/fpu_context.h
rcd92528 r6f8a426 30 30 #define __ppc32_FPU_CONTEXT_H__ 31 31 32 #include <arch/types.h> 32 #ifndef __ppc32_TYPES_H__ 33 # include <arch/types.h> 34 #endif 33 35 34 36 struct fpu_context { 35 }; 37 __u64 fr14; 38 __u64 fr15; 39 __u64 fr16; 40 __u64 fr17; 41 __u64 fr18; 42 __u64 fr19; 43 __u64 fr20; 44 __u64 fr21; 45 __u64 fr22; 46 __u64 fr23; 47 __u64 fr24; 48 __u64 fr25; 49 __u64 fr26; 50 __u64 fr27; 51 __u64 fr28; 52 __u64 fr29; 53 __u64 fr30; 54 __u64 fr31; 55 __u32 fpscr; 56 } __attribute__ ((packed)); 36 57 37 58 #endif -
arch/ppc32/src/asm.S
rcd92528 r6f8a426 86 86 87 87 memcpy: 88 # TODO 88 srwi. r7, r5, 3 89 addi r6, r3, -4 90 addi r4, r4, -4 91 beq 2f 92 93 andi. r0, r6, 3 94 mtctr r7 95 bne 5f 96 97 1: 98 99 lwz r7, 4(r4) 100 lwzu r8, 8(r4) 101 stw r7, 4(r6) 102 stwu r8, 8(r6) 103 bdnz 1b 104 105 andi. r5, r5, 7 106 107 2: 108 109 cmplwi 0, r5, 4 110 blt 3f 111 112 lwzu r0, 4(r4) 113 addi r5, r5, -4 114 stwu r0, 4(r6) 115 116 3: 117 118 cmpwi 0, r5, 0 119 beqlr 120 mtctr r5 121 addi r4, r4, 3 122 addi r6, r6, 3 123 124 4: 125 126 lbzu r0, 1(r4) 127 stbu r0, 1(r6) 128 bdnz 4b 89 129 blr 130 131 5: 132 133 subfic r0, r0, 4 134 mtctr r0 135 136 6: 137 138 lbz r7, 4(r4) 139 addi r4, r4, 1 140 stb r7, 4(r6) 141 addi r6, r6, 1 142 bdnz 6b 143 subf r5, r0, r5 144 rlwinm. r7, r5, 32-3, 3, 31 145 beq 2b 146 mtctr r7 147 b 1b -
arch/ppc32/src/cpu/cpu.c
rcd92528 r6f8a426 28 28 29 29 #include <arch/cpu.h> 30 #include <arch/cpuid.h> 30 31 #include <cpu.h> 31 32 … … 41 42 void cpu_identify(void) 42 43 { 44 cpu_info_t info; 45 46 cpu_version(&info); 47 CPU->arch.version = info.version; 48 CPU->arch.revision = info.revision; 43 49 } 44 50 45 51 void cpu_print_report(cpu_t *m) 46 52 { 47 printf("cpu%d: \n", m->id);53 printf("cpu%d: version=%d, revision=%d\n", m->id, m->arch.version, m->arch.revision); 48 54 }
Note:
See TracChangeset
for help on using the changeset viewer.
