7.out.h 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263
  1. #define NSNAME 8
  2. #define NSYM 50
  3. #define NREG 32
  4. #define NOPROF (1<<0)
  5. #define DUPOK (1<<1)
  6. enum
  7. {
  8. REGRET = 0, /* return register and first temp, grows++ */
  9. REGARG = 0, /* first arg passed in */
  10. REGEXT = 15, /* first external register, grows-- */
  11. REGLINK = 26, /* subroutine linkage */
  12. REGTMP = 27, /* used by the loader */
  13. REGTMP2 = 28, /* used by the loader */
  14. REGSB = 29, /* static pointer */
  15. REGSP = 30, /* stack pointer */
  16. REGZERO = 31, /* always zero */
  17. FREGRET = 0,
  18. FREGEXT = 27, /* first external register */
  19. FREGHALF = 28, /* double */
  20. FREGONE = 29, /* double */
  21. FREGTWO = 30, /* double */
  22. FREGZERO = 31, /* both float and double */
  23. };
  24. enum as
  25. {
  26. AXXX,
  27. AGOK,
  28. ATEXT,
  29. ADATA,
  30. AGLOBL,
  31. AHISTORY,
  32. ANAME,
  33. AWORD,
  34. ANOP,
  35. AMOVL,
  36. AMOVLU,
  37. AMOVQ,
  38. AMOVQU,
  39. AMOVS,
  40. AMOVT,
  41. AMOVB,
  42. AMOVBU,
  43. AMOVW,
  44. AMOVWU,
  45. AMOVA,
  46. AMOVAH,
  47. AMOVLL,
  48. AMOVQL,
  49. AMOVLC,
  50. AMOVQC,
  51. AMOVQP,
  52. AMOVLP,
  53. AADDL,
  54. AADDLV,
  55. AADDQ,
  56. AADDQV,
  57. AS4ADDL,
  58. AS4ADDQ,
  59. AS8ADDL,
  60. AS8ADDQ,
  61. AS4SUBL,
  62. AS4SUBQ,
  63. AS8SUBL,
  64. AS8SUBQ,
  65. ASUBL,
  66. ASUBLV,
  67. ASUBQ,
  68. ASUBQV,
  69. ACMPEQ,
  70. ACMPGT,
  71. ACMPGE,
  72. ACMPUGT,
  73. ACMPUGE,
  74. ACMPBLE,
  75. AAND,
  76. AANDNOT,
  77. AOR,
  78. AORNOT,
  79. AXOR,
  80. AXORNOT,
  81. ACMOVEQ,
  82. ACMOVNE,
  83. ACMOVLT,
  84. ACMOVGE,
  85. ACMOVLE,
  86. ACMOVGT,
  87. ACMOVLBC,
  88. ACMOVLBS,
  89. AMULL,
  90. AMULQ,
  91. AMULLV,
  92. AMULQV,
  93. AUMULH,
  94. ADIVQ,
  95. AMODQ,
  96. ADIVQU,
  97. AMODQU,
  98. ADIVL,
  99. AMODL,
  100. ADIVLU,
  101. AMODLU,
  102. ASLLQ,
  103. ASRLQ,
  104. ASRAQ,
  105. ASLLL,
  106. ASRLL,
  107. ASRAL,
  108. AEXTBL,
  109. AEXTWL,
  110. AEXTLL,
  111. AEXTQL,
  112. AEXTWH,
  113. AEXTLH,
  114. AEXTQH,
  115. AINSBL,
  116. AINSWL,
  117. AINSLL,
  118. AINSQL,
  119. AINSWH,
  120. AINSLH,
  121. AINSQH,
  122. AMSKBL,
  123. AMSKWL,
  124. AMSKLL,
  125. AMSKQL,
  126. AMSKWH,
  127. AMSKLH,
  128. AMSKQH,
  129. AZAP,
  130. AZAPNOT,
  131. AJMP,
  132. AJSR,
  133. ARET,
  134. ABR,
  135. ABSR,
  136. ABEQ,
  137. ABNE,
  138. ABLT,
  139. ABGE,
  140. ABLE,
  141. ABGT,
  142. ABLBC,
  143. ABLBS,
  144. AFBEQ,
  145. AFBNE,
  146. AFBLT,
  147. AFBGE,
  148. AFBLE,
  149. AFBGT,
  150. ATRAPB,
  151. AMB,
  152. AFETCH,
  153. AFETCHM,
  154. ARPCC,
  155. ACPYS,
  156. ACPYSN,
  157. ACPYSE,
  158. ACVTLQ,
  159. ACVTQL,
  160. AFCMOVEQ,
  161. AFCMOVNE,
  162. AFCMOVLT,
  163. AFCMOVGE,
  164. AFCMOVLE,
  165. AFCMOVGT,
  166. AADDS,
  167. AADDT,
  168. ACMPTEQ,
  169. ACMPTGT,
  170. ACMPTGE,
  171. ACMPTUN,
  172. ACVTQS,
  173. ACVTQT,
  174. ACVTTS,
  175. ACVTTQ,
  176. ADIVS,
  177. ADIVT,
  178. AMULS,
  179. AMULT,
  180. ASUBS,
  181. ASUBT,
  182. ACALL_PAL,
  183. AREI,
  184. AEND,
  185. ADYNT,
  186. AINIT,
  187. ALAST,
  188. };
  189. /* type/name */
  190. enum
  191. {
  192. D_GOK = 0,
  193. D_NONE,
  194. /* name */
  195. D_EXTERN,
  196. D_STATIC,
  197. D_AUTO,
  198. D_PARAM,
  199. /* type */
  200. D_BRANCH,
  201. D_OREG,
  202. D_CONST,
  203. D_FCONST,
  204. D_SCONST,
  205. D_REG,
  206. D_FREG,
  207. D_FCREG,
  208. D_PREG,
  209. D_PCC,
  210. D_FILE,
  211. D_FILE1,
  212. };
  213. /*
  214. * this is the ranlib header
  215. */
  216. #define SYMDEF "__.SYMDEF"
  217. /*
  218. * this is the simulated IEEE floating point
  219. */
  220. typedef struct ieee Ieee;
  221. struct ieee
  222. {
  223. long l; /* contains ls-man 0xffffffff */
  224. long h; /* contains sign 0x80000000
  225. exp 0x7ff00000
  226. ms-man 0x000fffff */
  227. };