9.c 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. /*
  2. * amd29k definition
  3. */
  4. #include <u.h>
  5. #include <bio.h>
  6. #include "/29000/include/ureg.h"
  7. #include <mach.h>
  8. #define REGOFF(x) (ulong)(&((struct Ureg *) 0)->x)
  9. Reglist amd29kreglist[] = {
  10. {"CAUSE", REGOFF(cause), RINT|RRDONLY, 'X'},
  11. {"STATUS", REGOFF(status), RINT|RRDONLY, 'X'},
  12. {"CHA", REGOFF(cha), RINT|RRDONLY, 'X'},
  13. {"CHD", REGOFF(chd), RINT|RRDONLY, 'X'},
  14. {"CHC", REGOFF(chc), RINT|RRDONLY, 'X'},
  15. {"PC0", REGOFF(pc0), RINT|RRDONLY, 'X'},
  16. {"PC1", REGOFF(pc1), RINT|RRDONLY, 'X'},
  17. {"PC2", REGOFF(pc2), RINT|RRDONLY, 'X'},
  18. {"IPC", REGOFF(ipc), RINT|RRDONLY, 'X'},
  19. {"IPA", REGOFF(ipa), RINT|RRDONLY, 'X'},
  20. {"IPB", REGOFF(ipb), RINT|RRDONLY, 'X'},
  21. {"IPA", REGOFF(ipa), RINT|RRDONLY, 'X'},
  22. {"ALUSTAT", REGOFF(alustat), RINT|RRDONLY, 'X'},
  23. {"CR", REGOFF(cr), RINT|RRDONLY, 'X'},
  24. {"R64", REGOFF(r64), RINT, 'X'},
  25. {"SP", REGOFF(sp), RINT, 'X'},
  26. {"R66", REGOFF(r66), RINT, 'X'},
  27. {"R67", REGOFF(r67), RINT, 'X'},
  28. {"R68", REGOFF(r68), RINT, 'X'},
  29. {"R69", REGOFF(r69), RINT, 'X'},
  30. {"R70", REGOFF(r70), RINT, 'X'},
  31. {"R71", REGOFF(r71), RINT, 'X'},
  32. {"R72", REGOFF(r72), RINT, 'X'},
  33. {"R73", REGOFF(r73), RINT, 'X'},
  34. {"R74", REGOFF(r74), RINT, 'X'},
  35. {"R75", REGOFF(r75), RINT, 'X'},
  36. {"R76", REGOFF(r76), RINT, 'X'},
  37. {"R77", REGOFF(r77), RINT, 'X'},
  38. {"R78", REGOFF(r78), RINT, 'X'},
  39. {"R79", REGOFF(r79), RINT, 'X'},
  40. {"R80", REGOFF(r80), RINT, 'X'},
  41. {"R81", REGOFF(r81), RINT, 'X'},
  42. {"R82", REGOFF(r82), RINT, 'X'},
  43. {"R83", REGOFF(r83), RINT, 'X'},
  44. {"R84", REGOFF(r84), RINT, 'X'},
  45. {"R85", REGOFF(r85), RINT, 'X'},
  46. {"R86", REGOFF(r86), RINT, 'X'},
  47. {"R87", REGOFF(r87), RINT, 'X'},
  48. {"R88", REGOFF(r88), RINT, 'X'},
  49. {"R89", REGOFF(r89), RINT, 'X'},
  50. {"R90", REGOFF(r90), RINT, 'X'},
  51. {"R91", REGOFF(r91), RINT, 'X'},
  52. {"R92", REGOFF(r92), RINT, 'X'},
  53. {"R93", REGOFF(r93), RINT, 'X'},
  54. {"R94", REGOFF(r94), RINT, 'X'},
  55. {"R95", REGOFF(r95), RINT, 'X'},
  56. {"R96", REGOFF(r96), RINT, 'X'},
  57. {"R97", REGOFF(r97), RINT, 'X'},
  58. {"R98", REGOFF(r98), RINT, 'X'},
  59. {"R99", REGOFF(r99), RINT, 'X'},
  60. {"R100", REGOFF(r100), RINT, 'X'},
  61. {"R101", REGOFF(r101), RINT, 'X'},
  62. };
  63. /* the machine description */
  64. Mach m29000 =
  65. {
  66. "29000",
  67. M29000, /* machine type */
  68. amd29kreglist, /* register set */
  69. 52*4, /* number of bytes in reg set */
  70. 0, /* number of bytes in fp reg set */
  71. "PC0", /* name of PC */
  72. "SP", /* name of SP */
  73. "R64", /* name of link register */
  74. "setR67", /* static base register name */
  75. 0, /* value */
  76. 0x1000, /* page size */
  77. 0x01000000, /* kernel base */
  78. 0x01000000, /* kernel text mask */
  79. 4, /* quantization of pc */
  80. 4, /* szaddr */
  81. 4, /* szreg */
  82. 4, /* szfloat */
  83. 8, /* szdouble */
  84. };