reg.h revision 1.7
11.7Smatt/* $NetBSD: reg.h,v 1.7 2002/04/18 20:08:10 matt Exp $ */ 21.2Sperry 31.5Smatt#ifndef _POWERPC_REG_H_ 41.5Smatt#define _POWERPC_REG_H_ 51.7Smatt 61.7Smatt/* 71.7Smatt * Register Usage according the SVR4 ABI for PPC. 81.7Smatt * 91.7Smatt * Register Name Usage 101.7Smatt * r0 Volatile register which may be modified during 111.7Smatt * function linkage 121.7Smatt * r1 Stack fram pointer, always valid 131.7Smatt * r2 System-reserved register 141.7Smatt * r3-r4 Volatile registers used for parameter passing and 151.7Smatt * return values 161.7Smatt * r5-r10 Volatile registers used for parameter passing 171.7Smatt * r11-r12 Volatile register which may be modified during 181.7Smatt * function linkage 191.7Smatt * [Start of callee-saved registers] 201.7Smatt * r13 Small data area pointer register 211.7Smatt * r14-r30 Registers used for local variables 221.7Smatt * r31 Used for local variable or "environent pointers" 231.7Smatt * 241.7Smatt * f0 Volatile register 251.7Smatt * f1 Volatile registers used for parameter passing and 261.7Smatt * return values 271.7Smatt * f2-f8 Volatile registers used for parameter passing 281.7Smatt * f9-f13 Volatile registers 291.7Smatt * f14-f31 Registers used for local variables 301.7Smatt */ 311.5Smatt 321.5Smattstruct reg { /* base registers */ 331.3Stsubai register_t fixreg[32]; 341.5Smatt register_t lr; /* Link Register */ 351.5Smatt int cr; /* Condition Register */ 361.5Smatt int xer; /* SPR 1 */ 371.5Smatt register_t ctr; /* Count Register */ 381.5Smatt register_t pc; /* Program Counter */ 391.4Stsubai}; 401.4Stsubai 411.5Smattstruct fpreg { /* Floating Point registers */ 421.4Stsubai double fpreg[32]; 431.5Smatt double fpscr; /* Status and Control Register */ 441.5Smatt}; 451.5Smatt 461.5Smattstruct vreg { /* Vector registers */ 471.5Smatt u_int32_t vreg[32][4]; 481.5Smatt register_t vscr; /* Vector Status And Control Register */ 491.6Skleink register_t vrsave; /* SPR 256 */ 501.3Stsubai}; 511.5Smatt 521.5Smatt#endif /* _POWERPC_REG_H_ */ 53