7.out.h 3.0 KB

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