80 lines
		
	
	
	
		
			1.7 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			80 lines
		
	
	
	
		
			1.7 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
|   | /*
 | ||
|  |  * linux/asm-sparc/reg.h | ||
|  |  * Layout of the registers as expected by gdb on the Sparc | ||
|  |  * we should replace the user.h definitions with those in | ||
|  |  * this file, we don't even use the other  | ||
|  |  * -miguel | ||
|  |  * | ||
|  |  * The names of the structures, constants and aliases in this file | ||
|  |  * have the same names as the sunos ones, some programs rely on these | ||
|  |  * names (gdb for example). | ||
|  |  * | ||
|  |  */ | ||
|  | 
 | ||
|  | #ifndef __SPARC_REG_H
 | ||
|  | #define __SPARC_REG_H
 | ||
|  | 
 | ||
|  | struct regs { | ||
|  | 	int     r_psr; | ||
|  | #define r_ps r_psr
 | ||
|  |         int     r_pc;  | ||
|  |         int     r_npc; | ||
|  |         int     r_y;   | ||
|  |         int     r_g1;  | ||
|  |         int     r_g2; | ||
|  |         int     r_g3; | ||
|  |         int     r_g4; | ||
|  |         int     r_g5; | ||
|  |         int     r_g6; | ||
|  |         int     r_g7; | ||
|  |         int     r_o0; | ||
|  |         int     r_o1; | ||
|  |         int     r_o2; | ||
|  |         int     r_o3; | ||
|  |         int     r_o4; | ||
|  |         int     r_o5; | ||
|  |         int     r_o6; | ||
|  |         int     r_o7; | ||
|  | }; | ||
|  | 
 | ||
|  | struct fpq { | ||
|  |         unsigned long *addr; | ||
|  |         unsigned long instr; | ||
|  | }; | ||
|  | 
 | ||
|  | struct  fq { | ||
|  |         union { | ||
|  |                 double  whole; | ||
|  |                 struct  fpq fpq; | ||
|  |         } FQu; | ||
|  | }; | ||
|  | 
 | ||
|  | #define FPU_REGS_TYPE unsigned int
 | ||
|  | #define FPU_FSR_TYPE unsigned
 | ||
|  | 
 | ||
|  | struct fp_status { | ||
|  |         union { | ||
|  |                 FPU_REGS_TYPE Fpu_regs[32]; | ||
|  |                 double  Fpu_dregs[16]; | ||
|  |         } fpu_fr; | ||
|  |         FPU_FSR_TYPE Fpu_fsr; | ||
|  |         unsigned Fpu_flags; | ||
|  |         unsigned Fpu_extra; | ||
|  |         unsigned Fpu_qcnt; | ||
|  |         struct fq Fpu_q[16]; | ||
|  | }; | ||
|  | 
 | ||
|  | #define fpu_regs  f_fpstatus.fpu_fr.Fpu_regs
 | ||
|  | #define fpu_dregs f_fpstatus.fpu_fr.Fpu_dregs
 | ||
|  | #define fpu_fsr   f_fpstatus.Fpu_fsr
 | ||
|  | #define fpu_flags f_fpstatus.Fpu_flags
 | ||
|  | #define fpu_extra f_fpstatus.Fpu_extra
 | ||
|  | #define fpu_q     f_fpstatus.Fpu_q
 | ||
|  | #define fpu_qcnt  f_fpstatus.Fpu_qcnt
 | ||
|  | 
 | ||
|  | struct fpu { | ||
|  |         struct fp_status f_fpstatus; | ||
|  | }; | ||
|  | 
 | ||
|  | #endif /* __SPARC_REG_H */
 |