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