9.out.h 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419
  1. /*
  2. * powerpc 64
  3. */
  4. #define NSNAME 8
  5. #define NSYM 50
  6. #define NREG 32
  7. #define NOPROF (1<<0)
  8. #define DUPOK (1<<1)
  9. enum
  10. {
  11. REGZERO = 0, /* set to zero */
  12. REGSP = 1,
  13. REGSB = 2,
  14. REGRET = 3,
  15. REGARG = 3,
  16. REGMIN = 7, /* register variables allocated from here to REGMAX */
  17. REGMAX = 27,
  18. REGEXT = 30, /* external registers allocated from here down */
  19. REGTMP = 31, /* used by the linker */
  20. FREGRET = 0,
  21. FREGMIN = 17, /* first register variable */
  22. FREGEXT = 26, /* first external register */
  23. FREGCVI = 27, /* floating conversion constant */
  24. FREGZERO = 28, /* both float and double */
  25. FREGHALF = 29, /* double */
  26. FREGONE = 30, /* double */
  27. FREGTWO = 31 /* double */
  28. /*
  29. * GENERAL:
  30. *
  31. * compiler allocates R3 up as temps
  32. * compiler allocates register variables R7-R27
  33. * compiler allocates external registers R30 down
  34. *
  35. * compiler allocates register variables F17-F26
  36. * compiler allocates external registers F26 down
  37. */
  38. };
  39. enum as
  40. {
  41. AXXX = 0,
  42. AADD,
  43. AADDCC,
  44. AADDV,
  45. AADDVCC,
  46. AADDC,
  47. AADDCCC,
  48. AADDCV,
  49. AADDCVCC,
  50. AADDME,
  51. AADDMECC,
  52. AADDMEVCC,
  53. AADDMEV,
  54. AADDE,
  55. AADDECC,
  56. AADDEVCC,
  57. AADDEV,
  58. AADDZE,
  59. AADDZECC,
  60. AADDZEVCC,
  61. AADDZEV,
  62. AAND,
  63. AANDCC,
  64. AANDN,
  65. AANDNCC,
  66. ABC,
  67. ABCL,
  68. ABEQ,
  69. ABGE,
  70. ABGT,
  71. ABL,
  72. ABLE,
  73. ABLT,
  74. ABNE,
  75. ABR,
  76. ABVC,
  77. ABVS,
  78. ACMP,
  79. ACMPU,
  80. ACNTLZW,
  81. ACNTLZWCC,
  82. ACRAND,
  83. ACRANDN,
  84. ACREQV,
  85. ACRNAND,
  86. ACRNOR,
  87. ACROR,
  88. ACRORN,
  89. ACRXOR,
  90. ADIVW,
  91. ADIVWCC,
  92. ADIVWVCC,
  93. ADIVWV,
  94. ADIVWU,
  95. ADIVWUCC,
  96. ADIVWUVCC,
  97. ADIVWUV,
  98. AEQV,
  99. AEQVCC,
  100. AEXTSB,
  101. AEXTSBCC,
  102. AEXTSH,
  103. AEXTSHCC,
  104. AFABS,
  105. AFABSCC,
  106. AFADD,
  107. AFADDCC,
  108. AFADDS,
  109. AFADDSCC,
  110. AFCMPO,
  111. AFCMPU,
  112. AFCTIW,
  113. AFCTIWCC,
  114. AFCTIWZ,
  115. AFCTIWZCC,
  116. AFDIV,
  117. AFDIVCC,
  118. AFDIVS,
  119. AFDIVSCC,
  120. AFMADD,
  121. AFMADDCC,
  122. AFMADDS,
  123. AFMADDSCC,
  124. AFMOVD,
  125. AFMOVDCC,
  126. AFMOVDU,
  127. AFMOVS,
  128. AFMOVSU,
  129. AFMSUB,
  130. AFMSUBCC,
  131. AFMSUBS,
  132. AFMSUBSCC,
  133. AFMUL,
  134. AFMULCC,
  135. AFMULS,
  136. AFMULSCC,
  137. AFNABS,
  138. AFNABSCC,
  139. AFNEG,
  140. AFNEGCC,
  141. AFNMADD,
  142. AFNMADDCC,
  143. AFNMADDS,
  144. AFNMADDSCC,
  145. AFNMSUB,
  146. AFNMSUBCC,
  147. AFNMSUBS,
  148. AFNMSUBSCC,
  149. AFRSP,
  150. AFRSPCC,
  151. AFSUB,
  152. AFSUBCC,
  153. AFSUBS,
  154. AFSUBSCC,
  155. AMOVMW,
  156. ALSW,
  157. ALWAR,
  158. AMOVWBR,
  159. AMOVB,
  160. AMOVBU,
  161. AMOVBZ,
  162. AMOVBZU,
  163. AMOVH,
  164. AMOVHBR,
  165. AMOVHU,
  166. AMOVHZ,
  167. AMOVHZU,
  168. AMOVW,
  169. AMOVWU,
  170. AMOVFL,
  171. AMOVCRFS,
  172. AMTFSB0,
  173. AMTFSB0CC,
  174. AMTFSB1,
  175. AMTFSB1CC,
  176. AMULHW,
  177. AMULHWCC,
  178. AMULHWU,
  179. AMULHWUCC,
  180. AMULLW,
  181. AMULLWCC,
  182. AMULLWVCC,
  183. AMULLWV,
  184. ANAND,
  185. ANANDCC,
  186. ANEG,
  187. ANEGCC,
  188. ANEGVCC,
  189. ANEGV,
  190. ANOR,
  191. ANORCC,
  192. AOR,
  193. AORCC,
  194. AORN,
  195. AORNCC,
  196. AREM,
  197. AREMCC,
  198. AREMV,
  199. AREMVCC,
  200. AREMU,
  201. AREMUCC,
  202. AREMUV,
  203. AREMUVCC,
  204. ARFI,
  205. ARLWMI,
  206. ARLWMICC,
  207. ARLWNM,
  208. ARLWNMCC,
  209. ASLW,
  210. ASLWCC,
  211. ASRW,
  212. ASRAW,
  213. ASRAWCC,
  214. ASRWCC,
  215. ASTSW,
  216. ASTWCCC,
  217. ASUB,
  218. ASUBCC,
  219. ASUBVCC,
  220. ASUBC,
  221. ASUBCCC,
  222. ASUBCV,
  223. ASUBCVCC,
  224. ASUBME,
  225. ASUBMECC,
  226. ASUBMEVCC,
  227. ASUBMEV,
  228. ASUBV,
  229. ASUBE,
  230. ASUBECC,
  231. ASUBEV,
  232. ASUBEVCC,
  233. ASUBZE,
  234. ASUBZECC,
  235. ASUBZEVCC,
  236. ASUBZEV,
  237. ASYNC,
  238. AXOR,
  239. AXORCC,
  240. ADCBF,
  241. ADCBI,
  242. ADCBST,
  243. ADCBT,
  244. ADCBTST,
  245. ADCBZ,
  246. AECIWX,
  247. AECOWX,
  248. AEIEIO,
  249. AICBI,
  250. AISYNC,
  251. APTESYNC,
  252. ATLBIE,
  253. ATLBIEL,
  254. ATLBSYNC,
  255. ATW,
  256. ASYSCALL,
  257. ADATA,
  258. AGLOBL,
  259. AGOK,
  260. AHISTORY,
  261. ANAME,
  262. ANOP,
  263. ARETURN,
  264. ATEXT,
  265. AWORD,
  266. AEND,
  267. ADYNT,
  268. AINIT,
  269. ASIGNAME,
  270. ARFCI,
  271. /* optional on 32-bit */
  272. AFRES,
  273. AFRESCC,
  274. AFRSQRTE,
  275. AFRSQRTECC,
  276. AFSEL,
  277. AFSELCC,
  278. AFSQRT,
  279. AFSQRTCC,
  280. AFSQRTS,
  281. AFSQRTSCC,
  282. /* 64-bit */
  283. ACNTLZD,
  284. ACNTLZDCC,
  285. ACMPW, /* CMP with L=0 */
  286. ACMPWU,
  287. ADIVD,
  288. ADIVDCC,
  289. ADIVDVCC,
  290. ADIVDV,
  291. ADIVDU,
  292. ADIVDUCC,
  293. ADIVDUVCC,
  294. ADIVDUV,
  295. AEXTSW,
  296. AEXTSWCC,
  297. /* AFCFIW; AFCFIWCC */
  298. AFCFID,
  299. AFCFIDCC,
  300. AFCTID,
  301. AFCTIDCC,
  302. AFCTIDZ,
  303. AFCTIDZCC,
  304. ALDAR,
  305. AMOVD,
  306. AMOVDU,
  307. AMOVWZ,
  308. AMOVWZU,
  309. AMULHD,
  310. AMULHDCC,
  311. AMULHDU,
  312. AMULHDUCC,
  313. AMULLD,
  314. AMULLDCC,
  315. AMULLDVCC,
  316. AMULLDV,
  317. ARFID,
  318. ARLDMI,
  319. ARLDMICC,
  320. ARLDC,
  321. ARLDCCC,
  322. ARLDCR,
  323. ARLDCRCC,
  324. ARLDCL,
  325. ARLDCLCC,
  326. ASLBIA,
  327. ASLBIE,
  328. ASLBMFEE,
  329. ASLBMFEV,
  330. ASLBMTE,
  331. ASLD,
  332. ASLDCC,
  333. ASRD,
  334. ASRAD,
  335. ASRADCC,
  336. ASRDCC,
  337. ASTDCCC,
  338. ATD,
  339. /* 64-bit pseudo operation */
  340. ADWORD,
  341. AREMD,
  342. AREMDCC,
  343. AREMDV,
  344. AREMDVCC,
  345. AREMDU,
  346. AREMDUCC,
  347. AREMDUV,
  348. AREMDUVCC,
  349. /* more 64-bit operations */
  350. AHRFID,
  351. ALAST
  352. };
  353. /* type/name */
  354. enum
  355. {
  356. D_GOK = 0,
  357. D_NONE,
  358. /* name */
  359. D_EXTERN,
  360. D_STATIC,
  361. D_AUTO,
  362. D_PARAM,
  363. /* type */
  364. D_BRANCH,
  365. D_OREG,
  366. D_CONST,
  367. D_FCONST,
  368. D_SCONST,
  369. D_REG,
  370. D_FPSCR,
  371. D_MSR,
  372. D_FREG,
  373. D_CREG,
  374. D_SPR,
  375. D_OPT, /* branch/trap option */
  376. D_FILE,
  377. D_FILE1,
  378. D_DCR, /* device control register */
  379. D_DCONST,
  380. /* reg names iff type is D_SPR */
  381. D_XER = 1,
  382. D_LR = 8,
  383. D_CTR = 9
  384. /* and many supervisor level registers */
  385. };
  386. /*
  387. * this is the ranlib header
  388. */
  389. #define SYMDEF "__.SYMDEF"
  390. /*
  391. * this is the simulated IEEE floating point
  392. */
  393. typedef struct ieee Ieee;
  394. struct ieee
  395. {
  396. long l; /* contains ls-man 0xffffffff */
  397. long h; /* contains sign 0x80000000
  398. exp 0x7ff00000
  399. ms-man 0x000fffff */
  400. };