diff options
Diffstat (limited to 'arch/sparc/include/asm/reg_32.h')
| -rw-r--r-- | arch/sparc/include/asm/reg_32.h | 79 | 
1 files changed, 79 insertions, 0 deletions
diff --git a/arch/sparc/include/asm/reg_32.h b/arch/sparc/include/asm/reg_32.h new file mode 100644 index 00000000000..1efb056fb3d --- /dev/null +++ b/arch/sparc/include/asm/reg_32.h @@ -0,0 +1,79 @@ +/* + * linux/include/asm/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 */  |