| @@ -1,14 +1,14 @@ | | | @@ -1,14 +1,14 @@ |
1 | /* $NetBSD: reg.h,v 1.11 2014/08/12 20:27:10 joerg Exp $ */ | | 1 | /* $NetBSD: reg.h,v 1.12 2016/01/24 20:02:38 christos Exp $ */ |
2 | | | 2 | |
3 | #ifndef _POWERPC_REG_H_ | | 3 | #ifndef _POWERPC_REG_H_ |
4 | #define _POWERPC_REG_H_ | | 4 | #define _POWERPC_REG_H_ |
5 | | | 5 | |
6 | /* | | 6 | /* |
7 | * Register Usage according the SVR4 ABI for PPC. | | 7 | * Register Usage according the SVR4 ABI for PPC. |
8 | * | | 8 | * |
9 | * Register Usage | | 9 | * Register Usage |
10 | * r0 Volatile register which may be modified during function linkage | | 10 | * r0 Volatile register which may be modified during function linkage |
11 | * r1 Stack fram pointer, always valid | | 11 | * r1 Stack fram pointer, always valid |
12 | * r2 System-reserved register | | 12 | * r2 System-reserved register |
13 | * r3-r4 Volatile registers used for parameter passing and return values | | 13 | * r3-r4 Volatile registers used for parameter passing and return values |
14 | * r5-r10 Volatile registers used for parameter passing | | 14 | * r5-r10 Volatile registers used for parameter passing |
| @@ -39,39 +39,39 @@ | | | @@ -39,39 +39,39 @@ |
39 | * r13 Reserved for use as system thread ID | | 39 | * r13 Reserved for use as system thread ID |
40 | * | | 40 | * |
41 | * f0 Volatile register | | 41 | * f0 Volatile register |
42 | * f1-f4 Volatile registers used for parameter passing and return values | | 42 | * f1-f4 Volatile registers used for parameter passing and return values |
43 | * f5-f13 Volatile registers used for parameter passing | | 43 | * f5-f13 Volatile registers used for parameter passing |
44 | | | 44 | |
45 | * [Start of callee-saved registers] | | 45 | * [Start of callee-saved registers] |
46 | * r14-r31 Registers used for local variables | | 46 | * r14-r31 Registers used for local variables |
47 | * f14-f31 Registers used for local variables | | 47 | * f14-f31 Registers used for local variables |
48 | * | | 48 | * |
49 | */ | | 49 | */ |
50 | | | 50 | |
51 | struct reg { /* base registers */ | | 51 | struct reg { /* base registers */ |
52 | register_t fixreg[32]; | | 52 | __register_t fixreg[32]; |
53 | register_t lr; /* Link Register */ | | 53 | __register_t lr; /* Link Register */ |
54 | int cr; /* Condition Register */ | | 54 | int cr; /* Condition Register */ |
55 | int xer; /* SPR 1 */ | | 55 | int xer; /* SPR 1 */ |
56 | register_t ctr; /* Count Register */ | | 56 | __register_t ctr; /* Count Register */ |
57 | register_t pc; /* Program Counter */ | | 57 | __register_t pc; /* Program Counter */ |
58 | }; | | 58 | }; |
59 | | | 59 | |
60 | struct fpreg { /* Floating Point registers */ | | 60 | struct fpreg { /* Floating Point registers */ |
61 | #ifdef _KERNEL | | 61 | #ifdef _KERNEL |
62 | uint64_t fpreg[32]; | | 62 | uint64_t fpreg[32]; |
63 | uint64_t fpscr; /* Status and Control Register */ | | 63 | uint64_t fpscr; /* Status and Control Register */ |
64 | #else | | 64 | #else |
65 | double fpreg[32]; | | 65 | double fpreg[32]; |
66 | double fpscr; /* Status and Control Register */ | | 66 | double fpscr; /* Status and Control Register */ |
67 | #endif | | 67 | #endif |
68 | }; | | 68 | }; |
69 | | | 69 | |
70 | struct vreg { /* Vector registers */ | | 70 | struct vreg { /* Vector registers */ |
71 | uint32_t vreg[32][4]; | | 71 | uint32_t vreg[32][4]; |
72 | register_t vrsave; /* SPR 256 */ | | 72 | __register_t vrsave; /* SPR 256 */ |
73 | register_t spare[2]; /* filler */ | | 73 | __register_t spare[2]; /* filler */ |
74 | register_t vscr; /* Vector Status And Control Register */ | | 74 | __register_t vscr; /* Vector Status And Control Register */ |
75 | }; | | 75 | }; |
76 | | | 76 | |
77 | #endif /* _POWERPC_REG_H_ */ | | 77 | #endif /* _POWERPC_REG_H_ */ |