80 строки
1.7 KiB
C
80 строки
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 */
|