1*473d4f4bSDavid du Colombier #define NSNAME 8 2*473d4f4bSDavid du Colombier #define NSYM 50 3*473d4f4bSDavid du Colombier #define NREG 32 4*473d4f4bSDavid du Colombier #define NOPROF (1<<0) 5*473d4f4bSDavid du Colombier #define DUPOK (1<<1) 6*473d4f4bSDavid du Colombier 7*473d4f4bSDavid du Colombier enum 8*473d4f4bSDavid du Colombier { 9*473d4f4bSDavid du Colombier REGZERO = 0, /* always zero */ 10*473d4f4bSDavid du Colombier REGSP = 1, /* stack pointer */ 11*473d4f4bSDavid du Colombier REGSB = 2, /* static pointer */ 12*473d4f4bSDavid du Colombier REGSB1 = 3, /* (possible) second static pointer */ 13*473d4f4bSDavid du Colombier REGEXT = 6, /* first external register, grows-- */ 14*473d4f4bSDavid du Colombier REGRET = 7, /* return register and first temp, grows++ */ 15*473d4f4bSDavid du Colombier REGTMP = 14, /* used by the loader */ 16*473d4f4bSDavid du Colombier REGLINK = 15, /* subroutine linkage */ 17*473d4f4bSDavid du Colombier REGARG = 7, /* first arg passed in */ 18*473d4f4bSDavid du Colombier 19*473d4f4bSDavid du Colombier FREGRET = 0, 20*473d4f4bSDavid du Colombier FREGEXT = 22, /* first external register */ 21*473d4f4bSDavid du Colombier FREGZERO = 24, /* both float and double */ 22*473d4f4bSDavid du Colombier FREGHALF = 26, /* double */ 23*473d4f4bSDavid du Colombier FREGONE = 28, /* double */ 24*473d4f4bSDavid du Colombier FREGTWO = 30 /* double */ 25*473d4f4bSDavid du Colombier /* 26*473d4f4bSDavid du Colombier * GENERAL: 27*473d4f4bSDavid du Colombier * 28*473d4f4bSDavid du Colombier * compiler allocates R7 up as temps 29*473d4f4bSDavid du Colombier * compiler allocates external registers R6 down 30*473d4f4bSDavid du Colombier * compiler allocates register variables F4-F22 31*473d4f4bSDavid du Colombier * compiler allocates external registers F22 down 32*473d4f4bSDavid du Colombier */ 33*473d4f4bSDavid du Colombier }; 34*473d4f4bSDavid du Colombier 35*473d4f4bSDavid du Colombier enum as 36*473d4f4bSDavid du Colombier { 37*473d4f4bSDavid du Colombier AXXX = 0, 38*473d4f4bSDavid du Colombier AADD, 39*473d4f4bSDavid du Colombier AADDCC, 40*473d4f4bSDavid du Colombier AADDX, 41*473d4f4bSDavid du Colombier AADDXCC, 42*473d4f4bSDavid du Colombier AAND, 43*473d4f4bSDavid du Colombier AANDCC, 44*473d4f4bSDavid du Colombier AANDN, 45*473d4f4bSDavid du Colombier AANDNCC, 46*473d4f4bSDavid du Colombier ABA, 47*473d4f4bSDavid du Colombier ABCC, 48*473d4f4bSDavid du Colombier ABCS, 49*473d4f4bSDavid du Colombier ABE, 50*473d4f4bSDavid du Colombier ABG, 51*473d4f4bSDavid du Colombier ABGE, 52*473d4f4bSDavid du Colombier ABGU, 53*473d4f4bSDavid du Colombier ABL, 54*473d4f4bSDavid du Colombier ABLE, 55*473d4f4bSDavid du Colombier ABLEU, 56*473d4f4bSDavid du Colombier ABN, 57*473d4f4bSDavid du Colombier ABNE, 58*473d4f4bSDavid du Colombier ABNEG, 59*473d4f4bSDavid du Colombier ABPOS, 60*473d4f4bSDavid du Colombier ABVC, 61*473d4f4bSDavid du Colombier ABVS, 62*473d4f4bSDavid du Colombier ACB0, 63*473d4f4bSDavid du Colombier ACB01, 64*473d4f4bSDavid du Colombier ACB012, 65*473d4f4bSDavid du Colombier ACB013, 66*473d4f4bSDavid du Colombier ACB02, 67*473d4f4bSDavid du Colombier ACB023, 68*473d4f4bSDavid du Colombier ACB03, 69*473d4f4bSDavid du Colombier ACB1, 70*473d4f4bSDavid du Colombier ACB12, 71*473d4f4bSDavid du Colombier ACB123, 72*473d4f4bSDavid du Colombier ACB13, 73*473d4f4bSDavid du Colombier ACB2, 74*473d4f4bSDavid du Colombier ACB23, 75*473d4f4bSDavid du Colombier ACB3, 76*473d4f4bSDavid du Colombier ACBA, 77*473d4f4bSDavid du Colombier ACBN, 78*473d4f4bSDavid du Colombier ACMP, /* pseudo op */ 79*473d4f4bSDavid du Colombier ACPOP1, 80*473d4f4bSDavid du Colombier ACPOP2, 81*473d4f4bSDavid du Colombier ADATA, 82*473d4f4bSDavid du Colombier ADIV, 83*473d4f4bSDavid du Colombier ADIVL, 84*473d4f4bSDavid du Colombier AFABSD, /* pseudo op */ 85*473d4f4bSDavid du Colombier AFABSF, 86*473d4f4bSDavid du Colombier AFABSX, /* pseudo op */ 87*473d4f4bSDavid du Colombier AFADDD, 88*473d4f4bSDavid du Colombier AFADDF, 89*473d4f4bSDavid du Colombier AFADDX, 90*473d4f4bSDavid du Colombier AFBA, 91*473d4f4bSDavid du Colombier AFBE, 92*473d4f4bSDavid du Colombier AFBG, 93*473d4f4bSDavid du Colombier AFBGE, 94*473d4f4bSDavid du Colombier AFBL, 95*473d4f4bSDavid du Colombier AFBLE, 96*473d4f4bSDavid du Colombier AFBLG, 97*473d4f4bSDavid du Colombier AFBN, 98*473d4f4bSDavid du Colombier AFBNE, 99*473d4f4bSDavid du Colombier AFBO, 100*473d4f4bSDavid du Colombier AFBU, 101*473d4f4bSDavid du Colombier AFBUE, 102*473d4f4bSDavid du Colombier AFBUG, 103*473d4f4bSDavid du Colombier AFBUGE, 104*473d4f4bSDavid du Colombier AFBUL, 105*473d4f4bSDavid du Colombier AFBULE, 106*473d4f4bSDavid du Colombier AFCMPD, 107*473d4f4bSDavid du Colombier AFCMPED, 108*473d4f4bSDavid du Colombier AFCMPEF, 109*473d4f4bSDavid du Colombier AFCMPEX, 110*473d4f4bSDavid du Colombier AFCMPF, 111*473d4f4bSDavid du Colombier AFCMPX, 112*473d4f4bSDavid du Colombier AFDIVD, 113*473d4f4bSDavid du Colombier AFDIVF, 114*473d4f4bSDavid du Colombier AFDIVX, 115*473d4f4bSDavid du Colombier AFMOVD, /* pseudo op */ 116*473d4f4bSDavid du Colombier AFMOVDF, 117*473d4f4bSDavid du Colombier AFMOVDW, 118*473d4f4bSDavid du Colombier AFMOVDX, 119*473d4f4bSDavid du Colombier AFMOVF, 120*473d4f4bSDavid du Colombier AFMOVFD, 121*473d4f4bSDavid du Colombier AFMOVFW, 122*473d4f4bSDavid du Colombier AFMOVFX, 123*473d4f4bSDavid du Colombier AFMOVWD, 124*473d4f4bSDavid du Colombier AFMOVWF, 125*473d4f4bSDavid du Colombier AFMOVWX, 126*473d4f4bSDavid du Colombier AFMOVX, /* pseudo op */ 127*473d4f4bSDavid du Colombier AFMOVXD, 128*473d4f4bSDavid du Colombier AFMOVXF, 129*473d4f4bSDavid du Colombier AFMOVXW, 130*473d4f4bSDavid du Colombier AFMULD, 131*473d4f4bSDavid du Colombier AFMULF, 132*473d4f4bSDavid du Colombier AFMULX, 133*473d4f4bSDavid du Colombier AFNEGD, /* pseudo op */ 134*473d4f4bSDavid du Colombier AFNEGF, 135*473d4f4bSDavid du Colombier AFNEGX, /* pseudo op */ 136*473d4f4bSDavid du Colombier AFSQRTD, 137*473d4f4bSDavid du Colombier AFSQRTF, 138*473d4f4bSDavid du Colombier AFSQRTX, 139*473d4f4bSDavid du Colombier AFSUBD, 140*473d4f4bSDavid du Colombier AFSUBF, 141*473d4f4bSDavid du Colombier AFSUBX, 142*473d4f4bSDavid du Colombier AGLOBL, 143*473d4f4bSDavid du Colombier AGOK, 144*473d4f4bSDavid du Colombier AHISTORY, 145*473d4f4bSDavid du Colombier AIFLUSH, 146*473d4f4bSDavid du Colombier AJMPL, 147*473d4f4bSDavid du Colombier AJMP, 148*473d4f4bSDavid du Colombier AMOD, 149*473d4f4bSDavid du Colombier AMODL, 150*473d4f4bSDavid du Colombier AMOVB, 151*473d4f4bSDavid du Colombier AMOVBU, 152*473d4f4bSDavid du Colombier AMOVD, 153*473d4f4bSDavid du Colombier AMOVH, 154*473d4f4bSDavid du Colombier AMOVHU, 155*473d4f4bSDavid du Colombier AMOVW, 156*473d4f4bSDavid du Colombier AMUL, 157*473d4f4bSDavid du Colombier AMULSCC, 158*473d4f4bSDavid du Colombier AXXXdummy, // to temporarily make ANAME/ASIGNAME different than .k's 159*473d4f4bSDavid du Colombier ANAME, 160*473d4f4bSDavid du Colombier ANOP, 161*473d4f4bSDavid du Colombier AOR, 162*473d4f4bSDavid du Colombier AORCC, 163*473d4f4bSDavid du Colombier AORN, 164*473d4f4bSDavid du Colombier AORNCC, 165*473d4f4bSDavid du Colombier ARESTORE, 166*473d4f4bSDavid du Colombier ARETT, 167*473d4f4bSDavid du Colombier ARETURN, 168*473d4f4bSDavid du Colombier ASAVE, 169*473d4f4bSDavid du Colombier ASLL, 170*473d4f4bSDavid du Colombier ASRA, 171*473d4f4bSDavid du Colombier ASRL, 172*473d4f4bSDavid du Colombier ASUB, 173*473d4f4bSDavid du Colombier ASUBCC, 174*473d4f4bSDavid du Colombier ASUBX, 175*473d4f4bSDavid du Colombier ASUBXCC, 176*473d4f4bSDavid du Colombier ASWAP, 177*473d4f4bSDavid du Colombier ATA, 178*473d4f4bSDavid du Colombier ATADDCC, 179*473d4f4bSDavid du Colombier ATADDCCTV, 180*473d4f4bSDavid du Colombier ATAS, 181*473d4f4bSDavid du Colombier ATCC, 182*473d4f4bSDavid du Colombier ATCS, 183*473d4f4bSDavid du Colombier ATE, 184*473d4f4bSDavid du Colombier ATEXT, 185*473d4f4bSDavid du Colombier ATG, 186*473d4f4bSDavid du Colombier ATGE, 187*473d4f4bSDavid du Colombier ATGU, 188*473d4f4bSDavid du Colombier ATL, 189*473d4f4bSDavid du Colombier ATLE, 190*473d4f4bSDavid du Colombier ATLEU, 191*473d4f4bSDavid du Colombier ATN, 192*473d4f4bSDavid du Colombier ATNE, 193*473d4f4bSDavid du Colombier ATNEG, 194*473d4f4bSDavid du Colombier ATPOS, 195*473d4f4bSDavid du Colombier ATSUBCC, 196*473d4f4bSDavid du Colombier ATSUBCCTV, 197*473d4f4bSDavid du Colombier ATVC, 198*473d4f4bSDavid du Colombier ATVS, 199*473d4f4bSDavid du Colombier AUNIMP, 200*473d4f4bSDavid du Colombier AWORD, 201*473d4f4bSDavid du Colombier AXNOR, 202*473d4f4bSDavid du Colombier AXNORCC, 203*473d4f4bSDavid du Colombier AXOR, 204*473d4f4bSDavid du Colombier AXORCC, 205*473d4f4bSDavid du Colombier AEND, 206*473d4f4bSDavid du Colombier ADYNT, 207*473d4f4bSDavid du Colombier AINIT, 208*473d4f4bSDavid du Colombier ASIGNAME, 209*473d4f4bSDavid du Colombier ALAST 210*473d4f4bSDavid du Colombier }; 211*473d4f4bSDavid du Colombier 212*473d4f4bSDavid du Colombier /* type/name */ 213*473d4f4bSDavid du Colombier enum 214*473d4f4bSDavid du Colombier { 215*473d4f4bSDavid du Colombier D_GOK = 0, 216*473d4f4bSDavid du Colombier D_NONE, 217*473d4f4bSDavid du Colombier 218*473d4f4bSDavid du Colombier /* name */ 219*473d4f4bSDavid du Colombier D_EXTERN, 220*473d4f4bSDavid du Colombier D_STATIC, 221*473d4f4bSDavid du Colombier D_AUTO, 222*473d4f4bSDavid du Colombier D_PARAM, 223*473d4f4bSDavid du Colombier 224*473d4f4bSDavid du Colombier /* type */ 225*473d4f4bSDavid du Colombier D_BRANCH, 226*473d4f4bSDavid du Colombier D_OREG, 227*473d4f4bSDavid du Colombier D_ASI, 228*473d4f4bSDavid du Colombier D_CONST, 229*473d4f4bSDavid du Colombier D_FCONST, 230*473d4f4bSDavid du Colombier D_SCONST, 231*473d4f4bSDavid du Colombier D_REG, 232*473d4f4bSDavid du Colombier D_FREG, 233*473d4f4bSDavid du Colombier D_CREG, 234*473d4f4bSDavid du Colombier D_PREG, 235*473d4f4bSDavid du Colombier D_FILE, 236*473d4f4bSDavid du Colombier D_FILE1, 237*473d4f4bSDavid du Colombier 238*473d4f4bSDavid du Colombier /* reg names iff type is D_PREG */ 239*473d4f4bSDavid du Colombier D_CPQ = 0, 240*473d4f4bSDavid du Colombier D_CSR, 241*473d4f4bSDavid du Colombier D_FPQ, 242*473d4f4bSDavid du Colombier D_FSR, 243*473d4f4bSDavid du Colombier D_PSR, 244*473d4f4bSDavid du Colombier D_TBR, 245*473d4f4bSDavid du Colombier D_WIM, 246*473d4f4bSDavid du Colombier D_Y 247*473d4f4bSDavid du Colombier }; 248*473d4f4bSDavid du Colombier 249*473d4f4bSDavid du Colombier /* 250*473d4f4bSDavid du Colombier * this is the ranlib header 251*473d4f4bSDavid du Colombier */ 252*473d4f4bSDavid du Colombier #define SYMDEF "__.SYMDEF" 253*473d4f4bSDavid du Colombier 254*473d4f4bSDavid du Colombier /* 255*473d4f4bSDavid du Colombier * this is the simulated IEEE floating point 256*473d4f4bSDavid du Colombier */ 257*473d4f4bSDavid du Colombier typedef struct ieee Ieee; 258*473d4f4bSDavid du Colombier struct ieee 259*473d4f4bSDavid du Colombier { 260*473d4f4bSDavid du Colombier long l; /* contains ls-man 0xffffffff */ 261*473d4f4bSDavid du Colombier long h; /* contains sign 0x80000000 262*473d4f4bSDavid du Colombier exp 0x7ff00000 263*473d4f4bSDavid du Colombier ms-man 0x000fffff */ 264*473d4f4bSDavid du Colombier }; 265