q.out.h 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335
  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. REGZERO = 0, /* NOT zero */
  9. REGSP = 1,
  10. REGSB = 2,
  11. REGRET = 3,
  12. REGARG = 3,
  13. REGMIN = 7, /* register variables allocated from here to REGMAX */
  14. REGMAX = 27,
  15. REGEXT = 30, /* external registers allocated from here down */
  16. REGTMP = 31, /* used by the linker */
  17. FREGRET = 0,
  18. FREGMIN = 17, /* first register variable */
  19. FREGEXT = 26, /* first external register */
  20. FREGCVI = 27, /* floating conversion constant */
  21. FREGZERO = 28, /* both float and double */
  22. FREGHALF = 29, /* double */
  23. FREGONE = 30, /* double */
  24. FREGTWO = 31, /* double */
  25. /*
  26. * GENERAL:
  27. *
  28. * compiler allocates R3 up as temps
  29. * compiler allocates register variables R7-R28
  30. * compiler allocates external registers R29 down
  31. *
  32. * compiler allocates register variables F17-F26
  33. * compiler allocates external registers F26 down
  34. */
  35. };
  36. enum as
  37. {
  38. AXXX = 0,
  39. AADD,
  40. AADDCC,
  41. AADDV,
  42. AADDVCC,
  43. AADDC,
  44. AADDCCC,
  45. AADDCV,
  46. AADDCVCC,
  47. AADDME,
  48. AADDMECC,
  49. AADDMEVCC,
  50. AADDMEV,
  51. AADDE,
  52. AADDECC,
  53. AADDEVCC,
  54. AADDEV,
  55. AADDZE,
  56. AADDZECC,
  57. AADDZEVCC,
  58. AADDZEV,
  59. AAND,
  60. AANDCC,
  61. AANDN,
  62. AANDNCC,
  63. ABC,
  64. ABCL,
  65. ABEQ,
  66. ABGE,
  67. ABGT,
  68. ABL,
  69. ABLE,
  70. ABLT,
  71. ABNE,
  72. ABR,
  73. ABVC,
  74. ABVS,
  75. ACMP,
  76. ACMPU,
  77. ACNTLZW,
  78. ACNTLZWCC,
  79. ACRAND,
  80. ACRANDN,
  81. ACREQV,
  82. ACRNAND,
  83. ACRNOR,
  84. ACROR,
  85. ACRORN,
  86. ACRXOR,
  87. ADIVW,
  88. ADIVWCC,
  89. ADIVWVCC,
  90. ADIVWV,
  91. ADIVWU,
  92. ADIVWUCC,
  93. ADIVWUVCC,
  94. ADIVWUV,
  95. AEQV,
  96. AEQVCC,
  97. AEXTSB,
  98. AEXTSBCC,
  99. AEXTSH,
  100. AEXTSHCC,
  101. AFABS,
  102. AFABSCC,
  103. AFADD,
  104. AFADDCC,
  105. AFADDS,
  106. AFADDSCC,
  107. AFCMPO,
  108. AFCMPU,
  109. AFCTIW,
  110. AFCTIWCC,
  111. AFCTIWZ,
  112. AFCTIWZCC,
  113. AFDIV,
  114. AFDIVCC,
  115. AFDIVS,
  116. AFDIVSCC,
  117. AFMADD,
  118. AFMADDCC,
  119. AFMADDS,
  120. AFMADDSCC,
  121. AFMOVD,
  122. AFMOVDCC,
  123. AFMOVDU,
  124. AFMOVS,
  125. AFMOVSU,
  126. AFMSUB,
  127. AFMSUBCC,
  128. AFMSUBS,
  129. AFMSUBSCC,
  130. AFMUL,
  131. AFMULCC,
  132. AFMULS,
  133. AFMULSCC,
  134. AFNABS,
  135. AFNABSCC,
  136. AFNEG,
  137. AFNEGCC,
  138. AFNMADD,
  139. AFNMADDCC,
  140. AFNMADDS,
  141. AFNMADDSCC,
  142. AFNMSUB,
  143. AFNMSUBCC,
  144. AFNMSUBS,
  145. AFNMSUBSCC,
  146. AFRSP,
  147. AFRSPCC,
  148. AFSUB,
  149. AFSUBCC,
  150. AFSUBS,
  151. AFSUBSCC,
  152. AMOVMW,
  153. ALSW,
  154. ALWAR,
  155. AMOVWBR,
  156. AMOVB,
  157. AMOVBU,
  158. AMOVBZ,
  159. AMOVBZU,
  160. AMOVH,
  161. AMOVHBR,
  162. AMOVHU,
  163. AMOVHZ,
  164. AMOVHZU,
  165. AMOVW,
  166. AMOVWU,
  167. AMOVFL,
  168. AMOVCRFXXX,
  169. AMOVCRFS,
  170. AMOVCRXRXXX,
  171. AMOVFCRXXX,
  172. AMFFSXXX,
  173. AMFFSCCXXX,
  174. AMTCRFXXX,
  175. AMTFSB0,
  176. AMTFSB0CC,
  177. AMTFSB1,
  178. AMTFSB1CC,
  179. AMTFSFXXX,
  180. AMTFSFCCXXX,
  181. AMTFSFIXXX,
  182. AMTFSFIXXXCC,
  183. AMULHW,
  184. AMULHWCC,
  185. AMULHWU,
  186. AMULHWUCC,
  187. AMULLW,
  188. AMULLWCC,
  189. AMULLWVCC,
  190. AMULLWV,
  191. ANAND,
  192. ANANDCC,
  193. ANEG,
  194. ANEGCC,
  195. ANEGVCC,
  196. ANEGV,
  197. ANOR,
  198. ANORCC,
  199. AOR,
  200. AORCC,
  201. AORN,
  202. AORNCC,
  203. AREM,
  204. AREMCC,
  205. AREMV,
  206. AREMVCC,
  207. AREMU,
  208. AREMUCC,
  209. AREMUV,
  210. AREMUVCC,
  211. ARFI,
  212. ARLWMI,
  213. ARLWMICC,
  214. ARLWNM,
  215. ARLWNMCC,
  216. ASLW,
  217. ASLWCC,
  218. ASRW,
  219. ASRAW,
  220. ASRAWCC,
  221. ASRWCC,
  222. AILLXXX1,
  223. ASTSW,
  224. ASTWBRXXX,
  225. ASTWCCC,
  226. ASUB,
  227. ASUBCC,
  228. ASUBVCC,
  229. ASUBC,
  230. ASUBCCC,
  231. ASUBCV,
  232. ASUBCVCC,
  233. ASUBME,
  234. ASUBMECC,
  235. ASUBMEVCC,
  236. ASUBMEV,
  237. ASUBV,
  238. ASUBE,
  239. ASUBECC,
  240. ASUBEV,
  241. ASUBEVCC,
  242. ASUBZE,
  243. ASUBZECC,
  244. ASUBZEVCC,
  245. ASUBZEV,
  246. ASYNC,
  247. AXOR,
  248. AXORCC,
  249. ADCBF,
  250. ADCBI,
  251. ADCBST,
  252. ADCBT,
  253. ADCBTST,
  254. ADCBZ,
  255. AECIWX,
  256. AECOWX,
  257. AEIEIO,
  258. AICBI,
  259. AISYNC,
  260. ATLBIE,
  261. ATW,
  262. ASYSCALL,
  263. ADATA,
  264. AGLOBL,
  265. AGOK,
  266. AHISTORY,
  267. ANAME,
  268. ANOP,
  269. ARETURN,
  270. ATEXT,
  271. AWORD,
  272. AEND,
  273. ADYNT,
  274. AINIT,
  275. ALAST
  276. };
  277. /* type/name */
  278. enum
  279. {
  280. D_GOK = 0,
  281. D_NONE,
  282. /* name */
  283. D_EXTERN,
  284. D_STATIC,
  285. D_AUTO,
  286. D_PARAM,
  287. /* type */
  288. D_BRANCH,
  289. D_OREG,
  290. D_CONST,
  291. D_FCONST,
  292. D_SCONST,
  293. D_REG,
  294. D_FPSCR,
  295. D_MSR,
  296. D_FREG,
  297. D_CREG,
  298. D_SPR,
  299. D_SREG, /* segment register */
  300. D_OPT, /* branch/trap option */
  301. D_FILE,
  302. D_FILE1,
  303. /* reg names iff type is D_SPR */
  304. D_XER = 1,
  305. D_LR = 8,
  306. D_CTR = 9,
  307. /* and many supervisor level registers */
  308. };
  309. /*
  310. * this is the ranlib header
  311. */
  312. #define SYMDEF "__.SYMDEF"
  313. /*
  314. * this is the simulated IEEE floating point
  315. */
  316. typedef struct ieee Ieee;
  317. struct ieee
  318. {
  319. long l; /* contains ls-man 0xffffffff */
  320. long h; /* contains sign 0x80000000
  321. exp 0x7ff00000
  322. ms-man 0x000fffff */
  323. };