| /* | |
| * linux/include/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 */ |