q.out.h 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426
  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, /* set to 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-R27
  30. * compiler allocates external registers R30 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. ASIGNAME,
  276. /* IBM powerpc embedded; not portable */
  277. AMACCHW,
  278. AMACCHWCC,
  279. AMACCHWS,
  280. AMACCHWSCC,
  281. AMACCHWSU,
  282. AMACCHWSUCC,
  283. AMACCHWSUV,
  284. AMACCHWSUVCC,
  285. AMACCHWSV,
  286. AMACCHWSVCC,
  287. AMACCHWU,
  288. AMACCHWUCC,
  289. AMACCHWUV,
  290. AMACCHWUVCC,
  291. AMACCHWV,
  292. AMACCHWVCC,
  293. AMACHHW,
  294. AMACHHWCC,
  295. AMACHHWV,
  296. AMACHHWVCC,
  297. AMACHHWS,
  298. AMACHHWSCC,
  299. AMACHHWSV,
  300. AMACHHWSVCC,
  301. AMACHHWSU,
  302. AMACHHWSUCC,
  303. AMACHHWSUV,
  304. AMACHHWSUVCC,
  305. AMACHHWU,
  306. AMACHHWUCC,
  307. AMACHHWUV,
  308. AMACHHWUVCC,
  309. AMACLHW,
  310. AMACLHWCC,
  311. AMACLHWS,
  312. AMACLHWSCC,
  313. AMACLHWSU,
  314. AMACLHWSUCC,
  315. AMACLHWSUV,
  316. AMACLHWSUVCC,
  317. AMACLHWSV,
  318. AMACLHWSVCC,
  319. AMACLHWU,
  320. AMACLHWUCC,
  321. AMACLHWUV,
  322. AMACLHWUVCC,
  323. AMACLHWV,
  324. AMACLHWVCC,
  325. AMULCHW,
  326. AMULCHWCC,
  327. AMULCHWU,
  328. AMULCHWUCC,
  329. AMULHHW,
  330. AMULHHWCC,
  331. AMULHHWU,
  332. AMULHHWUCC,
  333. AMULLHW,
  334. AMULLHWCC,
  335. AMULLHWU,
  336. AMULLHWUCC,
  337. ANMACCHW,
  338. ANMACCHWCC,
  339. ANMACCHWS,
  340. ANMACCHWSCC,
  341. ANMACCHWSV,
  342. ANMACCHWSVCC,
  343. ANMACCHWV,
  344. ANMACCHWVCC,
  345. ANMACHHW,
  346. ANMACHHWCC,
  347. ANMACHHWS,
  348. ANMACHHWSCC,
  349. ANMACHHWSV,
  350. ANMACHHWSVCC,
  351. ANMACHHWV,
  352. ANMACHHWVCC,
  353. ANMACLHW,
  354. ANMACLHWCC,
  355. ANMACLHWS,
  356. ANMACLHWSCC,
  357. ANMACLHWSV,
  358. ANMACLHWSVCC,
  359. ANMACLHWV,
  360. ANMACLHWVCC,
  361. ARFCI,
  362. ALAST
  363. };
  364. /* type/name */
  365. enum
  366. {
  367. D_GOK = 0,
  368. D_NONE,
  369. /* name */
  370. D_EXTERN,
  371. D_STATIC,
  372. D_AUTO,
  373. D_PARAM,
  374. /* type */
  375. D_BRANCH,
  376. D_OREG,
  377. D_CONST,
  378. D_FCONST,
  379. D_SCONST,
  380. D_REG,
  381. D_FPSCR,
  382. D_MSR,
  383. D_FREG,
  384. D_CREG,
  385. D_SPR,
  386. D_SREG, /* segment register */
  387. D_OPT, /* branch/trap option */
  388. D_FILE,
  389. D_FILE1,
  390. D_DCR, /* device control register */
  391. /* reg names iff type is D_SPR */
  392. D_XER = 1,
  393. D_LR = 8,
  394. D_CTR = 9
  395. /* and many supervisor level registers */
  396. };
  397. /*
  398. * this is the ranlib header
  399. */
  400. #define SYMDEF "__.SYMDEF"
  401. /*
  402. * this is the simulated IEEE floating point
  403. */
  404. typedef struct ieee Ieee;
  405. struct ieee
  406. {
  407. long l; /* contains ls-man 0xffffffff */
  408. long h; /* contains sign 0x80000000
  409. exp 0x7ff00000
  410. ms-man 0x000fffff */
  411. };