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