reg.h 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. /*
  2. * linux/include/asm-sparc/reg.h
  3. * Layout of the registers as expected by gdb on the Sparc
  4. * we should replace the user.h definitions with those in
  5. * this file, we don't even use the other
  6. * -miguel
  7. *
  8. * The names of the structures, constants and aliases in this file
  9. * have the same names as the sunos ones, some programs rely on these
  10. * names (gdb for example).
  11. *
  12. */
  13. #ifndef __SPARC_REG_H
  14. #define __SPARC_REG_H
  15. struct regs {
  16. int r_psr;
  17. #define r_ps r_psr
  18. int r_pc;
  19. int r_npc;
  20. int r_y;
  21. int r_g1;
  22. int r_g2;
  23. int r_g3;
  24. int r_g4;
  25. int r_g5;
  26. int r_g6;
  27. int r_g7;
  28. int r_o0;
  29. int r_o1;
  30. int r_o2;
  31. int r_o3;
  32. int r_o4;
  33. int r_o5;
  34. int r_o6;
  35. int r_o7;
  36. };
  37. struct fpq {
  38. unsigned long *addr;
  39. unsigned long instr;
  40. };
  41. struct fq {
  42. union {
  43. double whole;
  44. struct fpq fpq;
  45. } FQu;
  46. };
  47. #define FPU_REGS_TYPE unsigned int
  48. #define FPU_FSR_TYPE unsigned
  49. struct fp_status {
  50. union {
  51. FPU_REGS_TYPE Fpu_regs[32];
  52. double Fpu_dregs[16];
  53. } fpu_fr;
  54. FPU_FSR_TYPE Fpu_fsr;
  55. unsigned Fpu_flags;
  56. unsigned Fpu_extra;
  57. unsigned Fpu_qcnt;
  58. struct fq Fpu_q[16];
  59. };
  60. #define fpu_regs f_fpstatus.fpu_fr.Fpu_regs
  61. #define fpu_dregs f_fpstatus.fpu_fr.Fpu_dregs
  62. #define fpu_fsr f_fpstatus.Fpu_fsr
  63. #define fpu_flags f_fpstatus.Fpu_flags
  64. #define fpu_extra f_fpstatus.Fpu_extra
  65. #define fpu_q f_fpstatus.Fpu_q
  66. #define fpu_qcnt f_fpstatus.Fpu_qcnt
  67. struct fpu {
  68. struct fp_status f_fpstatus;
  69. };
  70. #endif /* __SPARC_REG_H */