13e12c5d1SDavid du Colombier #define NSNAME 8 23e12c5d1SDavid du Colombier #define NSYM 50 33e12c5d1SDavid du Colombier #define NREG 32 4219b2ee8SDavid du Colombier #define NOPROF (1<<0) 5219b2ee8SDavid du Colombier #define DUPOK (1<<1) 63e12c5d1SDavid du Colombier 73e12c5d1SDavid du Colombier enum 83e12c5d1SDavid du Colombier { 93e12c5d1SDavid du Colombier REGZERO = 0, /* always zero */ 103e12c5d1SDavid du Colombier REGSP = 1, /* stack pointer */ 113e12c5d1SDavid du Colombier REGSB = 2, /* static pointer */ 123e12c5d1SDavid du Colombier REGSB1 = 3, /* (possible) second static pointer */ 133e12c5d1SDavid du Colombier REGEXT = 6, /* first external register, grows-- */ 143e12c5d1SDavid du Colombier REGRET = 7, /* return register and first temp, grows++ */ 153e12c5d1SDavid du Colombier REGTMP = 14, /* used by the loader */ 163e12c5d1SDavid du Colombier REGLINK = 15, /* subroutine linkage */ 173e12c5d1SDavid du Colombier REGARG = 7, /* first arg passed in */ 183e12c5d1SDavid du Colombier 193e12c5d1SDavid du Colombier FREGRET = 0, 203e12c5d1SDavid du Colombier FREGEXT = 22, /* first external register */ 213e12c5d1SDavid du Colombier FREGZERO = 24, /* both float and double */ 223e12c5d1SDavid du Colombier FREGHALF = 26, /* double */ 233e12c5d1SDavid du Colombier FREGONE = 28, /* double */ 24*375daca8SDavid du Colombier FREGTWO = 30 /* double */ 253e12c5d1SDavid du Colombier /* 263e12c5d1SDavid du Colombier * GENERAL: 273e12c5d1SDavid du Colombier * 283e12c5d1SDavid du Colombier * compiler allocates R7 up as temps 293e12c5d1SDavid du Colombier * compiler allocates external registers R6 down 303e12c5d1SDavid du Colombier * compiler allocates register variables F4-F22 313e12c5d1SDavid du Colombier * compiler allocates external registers F22 down 323e12c5d1SDavid du Colombier */ 333e12c5d1SDavid du Colombier }; 343e12c5d1SDavid du Colombier 353e12c5d1SDavid du Colombier enum as 363e12c5d1SDavid du Colombier { 373e12c5d1SDavid du Colombier AXXX = 0, 383e12c5d1SDavid du Colombier AADD, 393e12c5d1SDavid du Colombier AADDCC, 403e12c5d1SDavid du Colombier AADDX, 413e12c5d1SDavid du Colombier AADDXCC, 423e12c5d1SDavid du Colombier AAND, 433e12c5d1SDavid du Colombier AANDCC, 443e12c5d1SDavid du Colombier AANDN, 453e12c5d1SDavid du Colombier AANDNCC, 463e12c5d1SDavid du Colombier ABA, 473e12c5d1SDavid du Colombier ABCC, 483e12c5d1SDavid du Colombier ABCS, 493e12c5d1SDavid du Colombier ABE, 503e12c5d1SDavid du Colombier ABG, 513e12c5d1SDavid du Colombier ABGE, 523e12c5d1SDavid du Colombier ABGU, 533e12c5d1SDavid du Colombier ABL, 543e12c5d1SDavid du Colombier ABLE, 553e12c5d1SDavid du Colombier ABLEU, 563e12c5d1SDavid du Colombier ABN, 573e12c5d1SDavid du Colombier ABNE, 583e12c5d1SDavid du Colombier ABNEG, 593e12c5d1SDavid du Colombier ABPOS, 603e12c5d1SDavid du Colombier ABVC, 613e12c5d1SDavid du Colombier ABVS, 623e12c5d1SDavid du Colombier ACB0, 633e12c5d1SDavid du Colombier ACB01, 643e12c5d1SDavid du Colombier ACB012, 653e12c5d1SDavid du Colombier ACB013, 663e12c5d1SDavid du Colombier ACB02, 673e12c5d1SDavid du Colombier ACB023, 683e12c5d1SDavid du Colombier ACB03, 693e12c5d1SDavid du Colombier ACB1, 703e12c5d1SDavid du Colombier ACB12, 713e12c5d1SDavid du Colombier ACB123, 723e12c5d1SDavid du Colombier ACB13, 733e12c5d1SDavid du Colombier ACB2, 743e12c5d1SDavid du Colombier ACB23, 753e12c5d1SDavid du Colombier ACB3, 763e12c5d1SDavid du Colombier ACBA, 773e12c5d1SDavid du Colombier ACBN, 783e12c5d1SDavid du Colombier ACMP, /* pseudo op */ 793e12c5d1SDavid du Colombier ACPOP1, 803e12c5d1SDavid du Colombier ACPOP2, 813e12c5d1SDavid du Colombier ADATA, 823e12c5d1SDavid du Colombier ADIV, 833e12c5d1SDavid du Colombier ADIVL, 843e12c5d1SDavid du Colombier AFABSD, /* pseudo op */ 853e12c5d1SDavid du Colombier AFABSF, 863e12c5d1SDavid du Colombier AFABSX, /* pseudo op */ 873e12c5d1SDavid du Colombier AFADDD, 883e12c5d1SDavid du Colombier AFADDF, 893e12c5d1SDavid du Colombier AFADDX, 903e12c5d1SDavid du Colombier AFBA, 913e12c5d1SDavid du Colombier AFBE, 923e12c5d1SDavid du Colombier AFBG, 933e12c5d1SDavid du Colombier AFBGE, 943e12c5d1SDavid du Colombier AFBL, 953e12c5d1SDavid du Colombier AFBLE, 963e12c5d1SDavid du Colombier AFBLG, 973e12c5d1SDavid du Colombier AFBN, 983e12c5d1SDavid du Colombier AFBNE, 993e12c5d1SDavid du Colombier AFBO, 1003e12c5d1SDavid du Colombier AFBU, 1013e12c5d1SDavid du Colombier AFBUE, 1023e12c5d1SDavid du Colombier AFBUG, 1033e12c5d1SDavid du Colombier AFBUGE, 1043e12c5d1SDavid du Colombier AFBUL, 1053e12c5d1SDavid du Colombier AFBULE, 1063e12c5d1SDavid du Colombier AFCMPD, 1073e12c5d1SDavid du Colombier AFCMPED, 1083e12c5d1SDavid du Colombier AFCMPEF, 1093e12c5d1SDavid du Colombier AFCMPEX, 1103e12c5d1SDavid du Colombier AFCMPF, 1113e12c5d1SDavid du Colombier AFCMPX, 1123e12c5d1SDavid du Colombier AFDIVD, 1133e12c5d1SDavid du Colombier AFDIVF, 1143e12c5d1SDavid du Colombier AFDIVX, 1153e12c5d1SDavid du Colombier AFMOVD, /* pseudo op */ 1163e12c5d1SDavid du Colombier AFMOVDF, 1173e12c5d1SDavid du Colombier AFMOVDW, 1183e12c5d1SDavid du Colombier AFMOVDX, 1193e12c5d1SDavid du Colombier AFMOVF, 1203e12c5d1SDavid du Colombier AFMOVFD, 1213e12c5d1SDavid du Colombier AFMOVFW, 1223e12c5d1SDavid du Colombier AFMOVFX, 1233e12c5d1SDavid du Colombier AFMOVWD, 1243e12c5d1SDavid du Colombier AFMOVWF, 1253e12c5d1SDavid du Colombier AFMOVWX, 1263e12c5d1SDavid du Colombier AFMOVX, /* pseudo op */ 1273e12c5d1SDavid du Colombier AFMOVXD, 1283e12c5d1SDavid du Colombier AFMOVXF, 1293e12c5d1SDavid du Colombier AFMOVXW, 1303e12c5d1SDavid du Colombier AFMULD, 1313e12c5d1SDavid du Colombier AFMULF, 1323e12c5d1SDavid du Colombier AFMULX, 1333e12c5d1SDavid du Colombier AFNEGD, /* pseudo op */ 1343e12c5d1SDavid du Colombier AFNEGF, 1353e12c5d1SDavid du Colombier AFNEGX, /* pseudo op */ 1363e12c5d1SDavid du Colombier AFSQRTD, 1373e12c5d1SDavid du Colombier AFSQRTF, 1383e12c5d1SDavid du Colombier AFSQRTX, 1393e12c5d1SDavid du Colombier AFSUBD, 1403e12c5d1SDavid du Colombier AFSUBF, 1413e12c5d1SDavid du Colombier AFSUBX, 1423e12c5d1SDavid du Colombier AGLOBL, 1433e12c5d1SDavid du Colombier AGOK, 1443e12c5d1SDavid du Colombier AHISTORY, 1453e12c5d1SDavid du Colombier AIFLUSH, 1463e12c5d1SDavid du Colombier AJMPL, 1473e12c5d1SDavid du Colombier AJMP, 1483e12c5d1SDavid du Colombier AMOD, 1493e12c5d1SDavid du Colombier AMODL, 1503e12c5d1SDavid du Colombier AMOVB, 1513e12c5d1SDavid du Colombier AMOVBU, 1523e12c5d1SDavid du Colombier AMOVD, 1533e12c5d1SDavid du Colombier AMOVH, 1543e12c5d1SDavid du Colombier AMOVHU, 1553e12c5d1SDavid du Colombier AMOVW, 1563e12c5d1SDavid du Colombier AMUL, 1573e12c5d1SDavid du Colombier AMULSCC, 1583e12c5d1SDavid du Colombier ANAME, 1593e12c5d1SDavid du Colombier ANOP, 1603e12c5d1SDavid du Colombier AOR, 1613e12c5d1SDavid du Colombier AORCC, 1623e12c5d1SDavid du Colombier AORN, 1633e12c5d1SDavid du Colombier AORNCC, 1643e12c5d1SDavid du Colombier ARESTORE, 1653e12c5d1SDavid du Colombier ARETT, 1663e12c5d1SDavid du Colombier ARETURN, 1673e12c5d1SDavid du Colombier ASAVE, 1683e12c5d1SDavid du Colombier ASLL, 1693e12c5d1SDavid du Colombier ASRA, 1703e12c5d1SDavid du Colombier ASRL, 1713e12c5d1SDavid du Colombier ASUB, 1723e12c5d1SDavid du Colombier ASUBCC, 1733e12c5d1SDavid du Colombier ASUBX, 1743e12c5d1SDavid du Colombier ASUBXCC, 1753e12c5d1SDavid du Colombier ASWAP, 1763e12c5d1SDavid du Colombier ATA, 1773e12c5d1SDavid du Colombier ATADDCC, 1783e12c5d1SDavid du Colombier ATADDCCTV, 1793e12c5d1SDavid du Colombier ATAS, 1803e12c5d1SDavid du Colombier ATCC, 1813e12c5d1SDavid du Colombier ATCS, 1823e12c5d1SDavid du Colombier ATE, 1833e12c5d1SDavid du Colombier ATEXT, 1843e12c5d1SDavid du Colombier ATG, 1853e12c5d1SDavid du Colombier ATGE, 1863e12c5d1SDavid du Colombier ATGU, 1873e12c5d1SDavid du Colombier ATL, 1883e12c5d1SDavid du Colombier ATLE, 1893e12c5d1SDavid du Colombier ATLEU, 1903e12c5d1SDavid du Colombier ATN, 1913e12c5d1SDavid du Colombier ATNE, 1923e12c5d1SDavid du Colombier ATNEG, 1933e12c5d1SDavid du Colombier ATPOS, 1943e12c5d1SDavid du Colombier ATSUBCC, 1953e12c5d1SDavid du Colombier ATSUBCCTV, 1963e12c5d1SDavid du Colombier ATVC, 1973e12c5d1SDavid du Colombier ATVS, 1983e12c5d1SDavid du Colombier AUNIMP, 1993e12c5d1SDavid du Colombier AWORD, 2003e12c5d1SDavid du Colombier AXNOR, 2013e12c5d1SDavid du Colombier AXNORCC, 2023e12c5d1SDavid du Colombier AXOR, 2033e12c5d1SDavid du Colombier AXORCC, 204219b2ee8SDavid du Colombier AEND, 205219b2ee8SDavid du Colombier ADYNT, 206219b2ee8SDavid du Colombier AINIT, 207*375daca8SDavid du Colombier ASIGNAME, 208219b2ee8SDavid du Colombier ALAST 2093e12c5d1SDavid du Colombier }; 2103e12c5d1SDavid du Colombier 2113e12c5d1SDavid du Colombier /* type/name */ 2123e12c5d1SDavid du Colombier enum 2133e12c5d1SDavid du Colombier { 2143e12c5d1SDavid du Colombier D_GOK = 0, 2153e12c5d1SDavid du Colombier D_NONE, 2163e12c5d1SDavid du Colombier 2173e12c5d1SDavid du Colombier /* name */ 2183e12c5d1SDavid du Colombier D_EXTERN, 2193e12c5d1SDavid du Colombier D_STATIC, 2203e12c5d1SDavid du Colombier D_AUTO, 2213e12c5d1SDavid du Colombier D_PARAM, 2223e12c5d1SDavid du Colombier 2233e12c5d1SDavid du Colombier /* type */ 2243e12c5d1SDavid du Colombier D_BRANCH, 2253e12c5d1SDavid du Colombier D_OREG, 2263e12c5d1SDavid du Colombier D_ASI, 2273e12c5d1SDavid du Colombier D_CONST, 2283e12c5d1SDavid du Colombier D_FCONST, 2293e12c5d1SDavid du Colombier D_SCONST, 2303e12c5d1SDavid du Colombier D_REG, 2313e12c5d1SDavid du Colombier D_FREG, 2323e12c5d1SDavid du Colombier D_CREG, 2333e12c5d1SDavid du Colombier D_PREG, 2343e12c5d1SDavid du Colombier D_FILE, 235219b2ee8SDavid du Colombier D_FILE1, 2363e12c5d1SDavid du Colombier 2373e12c5d1SDavid du Colombier /* reg names iff type is D_PREG */ 2383e12c5d1SDavid du Colombier D_CPQ = 0, 2393e12c5d1SDavid du Colombier D_CSR, 2403e12c5d1SDavid du Colombier D_FPQ, 2413e12c5d1SDavid du Colombier D_FSR, 2423e12c5d1SDavid du Colombier D_PSR, 2433e12c5d1SDavid du Colombier D_TBR, 2443e12c5d1SDavid du Colombier D_WIM, 245*375daca8SDavid du Colombier D_Y 2463e12c5d1SDavid du Colombier }; 2473e12c5d1SDavid du Colombier 2483e12c5d1SDavid du Colombier /* 2493e12c5d1SDavid du Colombier * this is the ranlib header 2503e12c5d1SDavid du Colombier */ 2513e12c5d1SDavid du Colombier #define SYMDEF "__.SYMDEF" 2523e12c5d1SDavid du Colombier 2533e12c5d1SDavid du Colombier /* 2543e12c5d1SDavid du Colombier * this is the simulated IEEE floating point 2553e12c5d1SDavid du Colombier */ 2563e12c5d1SDavid du Colombier typedef struct ieee Ieee; 2573e12c5d1SDavid du Colombier struct ieee 2583e12c5d1SDavid du Colombier { 2593e12c5d1SDavid du Colombier long l; /* contains ls-man 0xffffffff */ 2603e12c5d1SDavid du Colombier long h; /* contains sign 0x80000000 2613e12c5d1SDavid du Colombier exp 0x7ff00000 2623e12c5d1SDavid du Colombier ms-man 0x000fffff */ 2633e12c5d1SDavid du Colombier }; 264