Expand PMF_FN_* macros.
[netbsd-mini2440.git] / sys / arch / powerpc / include / reg.h
bloba9b0576245a2c2734f48d751ad9fead98ef476b2
1 /* $NetBSD: reg.h,v 1.8 2002/07/05 18:45:21 matt Exp $ */
3 #ifndef _POWERPC_REG_H_
4 #define _POWERPC_REG_H_
6 /*
7 * Register Usage according the SVR4 ABI for PPC.
9 * Register Usage
10 * r0 Volatile register which may be modified during function linkage
11 * r1 Stack fram pointer, always valid
12 * r2 System-reserved register
13 * r3-r4 Volatile registers used for parameter passing and return values
14 * r5-r10 Volatile registers used for parameter passing
15 * r11-r12 Volatile register which may be modified during function linkage
16 * r13 Small data area pointer register
17 * f0 Volatile register
18 * f1 Volatile registers used for parameter passing and return values
19 * f2-f8 Volatile registers used for parameter passing
20 * f9-f13 Volatile registers
22 * [Start of callee-saved registers]
23 * r14-r30 Registers used for local variables
24 * r31 Used for local variable or "environent pointers"
25 * f14-f31 Registers used for local variables
28 * Register Usage according the ELF64 ABI (PowerOpen/AIX) for PPC.
30 * Register Usage
31 * r0 Volatile register which may be modified during function linkage
32 * r1 Stack fram pointer, always valid
33 * r2 TOC pointer
34 * r3 Volatile register used for parameter passing and return value
35 * r4-r10 Volatile registers used for parameter passing
36 * r11 Volatile register used in calls by pointer and as an
37 * environment pointr for languages which require one
38 * r12 Volatile register used for exception handling and glink code
39 * r13 Reserved for use as system thread ID
41 * f0 Volatile register
42 * f1-f4 Volatile registers used for parameter passing and return values
43 * f5-f13 Volatile registers used for parameter passing
45 * [Start of callee-saved registers]
46 * r14-r31 Registers used for local variables
47 * f14-f31 Registers used for local variables
51 struct reg { /* base registers */
52 register_t fixreg[32];
53 register_t lr; /* Link Register */
54 int cr; /* Condition Register */
55 int xer; /* SPR 1 */
56 register_t ctr; /* Count Register */
57 register_t pc; /* Program Counter */
60 struct fpreg { /* Floating Point registers */
61 double fpreg[32];
62 double fpscr; /* Status and Control Register */
65 struct vreg { /* Vector registers */
66 u_int32_t vreg[32][4];
67 register_t vrsave; /* SPR 256 */
68 register_t spare[2]; /* filler */
69 register_t vscr; /* Vector Status And Control Register */
72 #endif /* _POWERPC_REG_H_ */