q.out.h 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488
  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. AMOVCRFS,
  169. AMTFSB0,
  170. AMTFSB0CC,
  171. AMTFSB1,
  172. AMTFSB1CC,
  173. AMULHW,
  174. AMULHWCC,
  175. AMULHWU,
  176. AMULHWUCC,
  177. AMULLW,
  178. AMULLWCC,
  179. AMULLWVCC,
  180. AMULLWV,
  181. ANAND,
  182. ANANDCC,
  183. ANEG,
  184. ANEGCC,
  185. ANEGVCC,
  186. ANEGV,
  187. ANOR,
  188. ANORCC,
  189. AOR,
  190. AORCC,
  191. AORN,
  192. AORNCC,
  193. AREM,
  194. AREMCC,
  195. AREMV,
  196. AREMVCC,
  197. AREMU,
  198. AREMUCC,
  199. AREMUV,
  200. AREMUVCC,
  201. ARFI,
  202. ARLWMI,
  203. ARLWMICC,
  204. ARLWNM,
  205. ARLWNMCC,
  206. ASLW,
  207. ASLWCC,
  208. ASRW,
  209. ASRAW,
  210. ASRAWCC,
  211. ASRWCC,
  212. ASTSW,
  213. ASTWCCC,
  214. ASUB,
  215. ASUBCC,
  216. ASUBVCC,
  217. ASUBC,
  218. ASUBCCC,
  219. ASUBCV,
  220. ASUBCVCC,
  221. ASUBME,
  222. ASUBMECC,
  223. ASUBMEVCC,
  224. ASUBMEV,
  225. ASUBV,
  226. ASUBE,
  227. ASUBECC,
  228. ASUBEV,
  229. ASUBEVCC,
  230. ASUBZE,
  231. ASUBZECC,
  232. ASUBZEVCC,
  233. ASUBZEV,
  234. ASYNC,
  235. AXOR,
  236. AXORCC,
  237. ADCBF,
  238. ADCBI,
  239. ADCBST,
  240. ADCBT,
  241. ADCBTST,
  242. ADCBZ,
  243. AECIWX,
  244. AECOWX,
  245. AEIEIO,
  246. AICBI,
  247. AISYNC,
  248. ATLBIE,
  249. ATW,
  250. ASYSCALL,
  251. ADATA,
  252. AGLOBL,
  253. AGOK,
  254. AHISTORY,
  255. ANAME,
  256. ANOP,
  257. ARETURN,
  258. ATEXT,
  259. AWORD,
  260. AEND,
  261. ADYNT,
  262. AINIT,
  263. ASIGNAME,
  264. /* IBM powerpc embedded; not portable */
  265. AMACCHW,
  266. AMACCHWCC,
  267. AMACCHWS,
  268. AMACCHWSCC,
  269. AMACCHWSU,
  270. AMACCHWSUCC,
  271. AMACCHWSUV,
  272. AMACCHWSUVCC,
  273. AMACCHWSV,
  274. AMACCHWSVCC,
  275. AMACCHWU,
  276. AMACCHWUCC,
  277. AMACCHWUV,
  278. AMACCHWUVCC,
  279. AMACCHWV,
  280. AMACCHWVCC,
  281. AMACHHW,
  282. AMACHHWCC,
  283. AMACHHWV,
  284. AMACHHWVCC,
  285. AMACHHWS,
  286. AMACHHWSCC,
  287. AMACHHWSV,
  288. AMACHHWSVCC,
  289. AMACHHWSU,
  290. AMACHHWSUCC,
  291. AMACHHWSUV,
  292. AMACHHWSUVCC,
  293. AMACHHWU,
  294. AMACHHWUCC,
  295. AMACHHWUV,
  296. AMACHHWUVCC,
  297. AMACLHW,
  298. AMACLHWCC,
  299. AMACLHWS,
  300. AMACLHWSCC,
  301. AMACLHWSU,
  302. AMACLHWSUCC,
  303. AMACLHWSUV,
  304. AMACLHWSUVCC,
  305. AMACLHWSV,
  306. AMACLHWSVCC,
  307. AMACLHWU,
  308. AMACLHWUCC,
  309. AMACLHWUV,
  310. AMACLHWUVCC,
  311. AMACLHWV,
  312. AMACLHWVCC,
  313. AMULCHW,
  314. AMULCHWCC,
  315. AMULCHWU,
  316. AMULCHWUCC,
  317. AMULHHW,
  318. AMULHHWCC,
  319. AMULHHWU,
  320. AMULHHWUCC,
  321. AMULLHW,
  322. AMULLHWCC,
  323. AMULLHWU,
  324. AMULLHWUCC,
  325. ANMACCHW,
  326. ANMACCHWCC,
  327. ANMACCHWS,
  328. ANMACCHWSCC,
  329. ANMACCHWSV,
  330. ANMACCHWSVCC,
  331. ANMACCHWV,
  332. ANMACCHWVCC,
  333. ANMACHHW,
  334. ANMACHHWCC,
  335. ANMACHHWS,
  336. ANMACHHWSCC,
  337. ANMACHHWSV,
  338. ANMACHHWSVCC,
  339. ANMACHHWV,
  340. ANMACHHWVCC,
  341. ANMACLHW,
  342. ANMACLHWCC,
  343. ANMACLHWS,
  344. ANMACLHWSCC,
  345. ANMACLHWSV,
  346. ANMACLHWSVCC,
  347. ANMACLHWV,
  348. ANMACLHWVCC,
  349. ARFCI,
  350. /* optional on 32-bit */
  351. AFRES,
  352. AFRESCC,
  353. AFRSQRTE,
  354. AFRSQRTECC,
  355. AFSEL,
  356. AFSELCC,
  357. AFSQRT,
  358. AFSQRTCC,
  359. AFSQRTS,
  360. AFSQRTSCC,
  361. /* parallel, cross, and secondary */
  362. AFPSEL,
  363. AFPMUL,
  364. AFXMUL,
  365. AFXPMUL,
  366. AFXSMUL,
  367. AFPADD,
  368. AFPSUB,
  369. AFPRE,
  370. AFPRSQRTE,
  371. AFPMADD,
  372. AFXMADD,
  373. AFXCPMADD,
  374. AFXCSMADD,
  375. AFPNMADD,
  376. AFXNMADD,
  377. AFXCPNMADD,
  378. AFXCSNMADD,
  379. AFPMSUB,
  380. AFXMSUB,
  381. AFXCPMSUB,
  382. AFXCSMSUB,
  383. AFPNMSUB,
  384. AFXNMSUB,
  385. AFXCPNMSUB,
  386. AFXCSNMSUB,
  387. AFPABS,
  388. AFPNEG,
  389. AFPRSP,
  390. AFPNABS,
  391. AFSCMP,
  392. AFSABS,
  393. AFSNEG,
  394. AFSNABS,
  395. AFPCTIW,
  396. AFPCTIWZ,
  397. AFMOVSPD,
  398. AFMOVPSD,
  399. AFXCPNPMA,
  400. AFXCSNPMA,
  401. AFXCPNSMA,
  402. AFXCSNSMA,
  403. AFXCXNPMA,
  404. AFXCXNSMA,
  405. AFXCXMA,
  406. AFXCXNMS,
  407. /* parallel, cross, and secondary load and store */
  408. AFSMOVS,
  409. AFSMOVSU,
  410. AFSMOVD,
  411. AFSMOVDU,
  412. AFXMOVS,
  413. AFXMOVSU,
  414. AFXMOVD,
  415. AFXMOVDU,
  416. AFPMOVS,
  417. AFPMOVSU,
  418. AFPMOVD,
  419. AFPMOVDU,
  420. AFPMOVIW,
  421. ALAST
  422. };
  423. /* type/name */
  424. enum
  425. {
  426. D_GOK = 0,
  427. D_NONE,
  428. /* name */
  429. D_EXTERN,
  430. D_STATIC,
  431. D_AUTO,
  432. D_PARAM,
  433. /* type */
  434. D_BRANCH,
  435. D_OREG,
  436. D_CONST,
  437. D_FCONST,
  438. D_SCONST,
  439. D_REG,
  440. D_FPSCR,
  441. D_MSR,
  442. D_FREG,
  443. D_CREG,
  444. D_SPR,
  445. D_SREG, /* segment register */
  446. D_OPT, /* branch/trap option */
  447. D_FILE,
  448. D_FILE1,
  449. D_DCR, /* device control register */
  450. /* reg names iff type is D_SPR */
  451. D_XER = 1,
  452. D_LR = 8,
  453. D_CTR = 9
  454. /* and many supervisor level registers */
  455. };
  456. /*
  457. * this is the ranlib header
  458. */
  459. #define SYMDEF "__.SYMDEF"
  460. /*
  461. * this is the simulated IEEE floating point
  462. */
  463. typedef struct ieee Ieee;
  464. struct ieee
  465. {
  466. long l; /* contains ls-man 0xffffffff */
  467. long h; /* contains sign 0x80000000
  468. exp 0x7ff00000
  469. ms-man 0x000fffff */
  470. };