regdef.h
上传用户:poi891205
上传日期:2013-07-15
资源大小:9745k
文件大小:5k
源码类别:

DVD

开发平台:

C/C++

  1. /* %Q% %M% %I% */
  2. /*
  3.  * Author Mark I. Himelstein
  4.  * Date started Wed Jun 19 15:37:59 PDT 1985
  5.  * added fp reg's  8/15/86 kag
  6.  * Module regdef.h
  7.  * Purpose provide a set of reasonable names for assembler register
  8.  * variables.
  9.  *
  10.  * see botton for sony-specific changes
  11.  */
  12. #define zero $0 /* wired zero */
  13. #define AT $at /* assembler temp */
  14. #define v0 $2 /* return value */
  15. #define v1 $3
  16. #define a0 $4 /* argument registers */
  17. #define a1 $5
  18. #define a2 $6
  19. #define a3 $7
  20. #define t0 $8 /* caller saved */
  21. #define t1 $9
  22. #define t2 $10
  23. #define t3 $11
  24. #define t4 $12
  25. #define t5 $13
  26. #define t6 $14
  27. #define t7 $15
  28. #define s0 $16 /* callee saved */
  29. #define s1 $17
  30. #define s2 $18
  31. #define s3 $19
  32. #define s4 $20
  33. #define s5 $21
  34. #define s6 $22
  35. #define s7 $23
  36. #define t8 $24 /* code generator */
  37. #define t9 $25
  38. #define k0 $26 /* kernel temporary */
  39. #define k1 $27
  40. #define gp $28 /* global pointer */
  41. #define sp $29 /* stack pointer */
  42. #define fp $30 /* frame pointer */
  43. #define ra $31 /* return address */
  44. #define s8 fp /* fp is unused in MIPS */
  45. #define r0 $0
  46. #define r1 $1
  47. #define r2 $2
  48. #define r3 $3
  49. #define r4 $4
  50. #define r5 $5
  51. #define r6 $6
  52. #define r7 $7
  53. #define r8 $8
  54. #define r9 $9
  55. #define r10 $10
  56. #define r11 $11
  57. #define r12 $12
  58. #define r13 $13
  59. #define r14 $14
  60. #define r15 $15
  61. #define r16 $16
  62. #define r17 $17
  63. #define r18 $18
  64. #define r19 $19
  65. #define r20 $20
  66. #define r21 $21
  67. #define r22 $22
  68. #define r23 $23
  69. #define r24 $24
  70. #define r25 $25
  71. #define r26 $26
  72. #define r27 $27
  73. #define r28 $28
  74. #define r29 $29
  75. #define r30 $30
  76. #define r31 $31
  77. #define fp0 $f0
  78. #define fp1 $f1
  79. #define fp2 $f2
  80. #define fp3 $f3
  81. #define fp4 $f4
  82. #define fp5 $f5
  83. #define fp6 $f6
  84. #define fp7 $f7
  85. #define fp8 $f8
  86. #define fp9 $f9
  87. #define fp10 $f10
  88. #define fp11 $f11
  89. #define fp12 $f12
  90. #define fp13 $f13
  91. #define fp14 $f14
  92. #define fp15 $f15
  93. #define fp16 $f16
  94. #define fp17 $f17
  95. #define fp18 $f18
  96. #define fp19 $f19
  97. #define fp20 $f20
  98. #define fp21 $f21
  99. #define fp22 $f22
  100. #define fp23 $f23
  101. #define fp24 $f24
  102. #define fp25 $f25
  103. #define fp26 $f26
  104. #define fp27 $f27
  105. #define fp28 $f28
  106. #define fp29 $f29
  107. #define fp30 $f30
  108. #define fp31 $f31
  109. /*
  110. #----------------------------------------------------------------------------
  111. #
  112. # sony section 
  113. #
  114. # Revision History:       
  115. #       
  116. # Rev Date Engineer Comments
  117. #
  118. # 01 11/29/93 SR Cox defined  SUBREG as r19
  119. #----------------------------------------------------------------------------
  120. */
  121. /*
  122. #use r19 as the subtest register for reporting errors
  123. #may have to change this later
  124. */
  125. #define SUBREG r19
  126. /* System Control Coprocessor (CP0) registers */
  127. #define C0_SR           $12             /* Processor Status */
  128. #define C0_STATUS       $12             /* Processor Status */
  129. #define C0_CAUSE        $13             /* Exception Cause */
  130. #define C0_EPC          $14             /* Exception PC */
  131. #define C0_BADADDR      $8              /* Bad Address */
  132. #define C0_BADVADDR     $8              /* Bad Virtual Address */
  133. #define C0_BADVA $8              /* Bad Virtual Address */
  134. #define C0_PRID         $15             /* Processor Revision Indentifier */
  135. #define C0_CCTL $20 /* LEXRA cache control extension */
  136. #define EXCCODE_Int 0x00
  137. #define EXCCODE_AdEL 0x04
  138. #define EXCCODE_AdES 0x05
  139. #define EXCCODE_Ov 0x0c
  140. #define EXCCODE_Sys 0x08
  141. #define EXCCODE_Bp 0x09
  142. #define EXCCODE_RI 0x0a
  143. #define EXCCODE_CpU 0x0b
  144. #define         CAUSE_IP        0x0000ff00
  145. #define         CAUSE_IP7       0x00008000
  146. #define         CAUSE_IP6       0x00004000
  147. #define         CAUSE_IP5       0x00002000
  148. #define         CAUSE_IP4       0x00001000
  149. #define         CAUSE_IP3       0x00000800
  150. #define         CAUSE_IP2       0x00000400
  151. #define         CAUSE_IP1       0x00000200
  152. #define         CAUSE_IP0       0x00000100
  153. #define STATUS_COP3 0x80000000
  154. #define STATUS_COP2 0x40000000
  155. #define STATUS_COP1 0x20000000
  156. #define STATUS_COP0 0x10000000
  157. #define STATUS_ENDIAN_BIG 0x02000000
  158. #define STATUS_BEV 0x00400000
  159. #define STATUS_IEc 0x00000001
  160. #define STATUS_KUc 0x00000002
  161. #define STATUS_IM 0x0000ff00
  162. #define STATUS_IM7 0x00008000
  163. #define         STATUS_IM6 0x00004000
  164. #define         STATUS_IM5 0x00002000
  165. #define         STATUS_IM4 0x00001000
  166. #define         STATUS_IM3 0x00000800
  167. #define         STATUS_IM2 0x00000400
  168. #define         STATUS_IM1 0x00000200
  169. #define         STATUS_IM0 0x00000100
  170. #define CCTL_DIvl 0x01
  171. #define CCTL_IIvl 0x02
  172. #define C3_DW_BASE $0
  173. #define C3_DW_TOP $1
  174. #define C3_IW_BASE $2
  175. #define C3_IW_TOP $3