147ad9175SDavid du Colombier /* 247ad9175SDavid du Colombier * powerpc 64 347ad9175SDavid du Colombier */ 447ad9175SDavid du Colombier #define NSNAME 8 547ad9175SDavid du Colombier #define NSYM 50 647ad9175SDavid du Colombier #define NREG 32 747ad9175SDavid du Colombier 847ad9175SDavid du Colombier #define NOPROF (1<<0) 947ad9175SDavid du Colombier #define DUPOK (1<<1) 1047ad9175SDavid du Colombier 1147ad9175SDavid du Colombier enum 1247ad9175SDavid du Colombier { 1347ad9175SDavid du Colombier REGZERO = 0, /* set to zero */ 1447ad9175SDavid du Colombier REGSP = 1, 1547ad9175SDavid du Colombier REGSB = 2, 1647ad9175SDavid du Colombier REGRET = 3, 1747ad9175SDavid du Colombier REGARG = 3, 1847ad9175SDavid du Colombier REGMIN = 7, /* register variables allocated from here to REGMAX */ 1947ad9175SDavid du Colombier REGMAX = 27, 2047ad9175SDavid du Colombier REGEXT = 30, /* external registers allocated from here down */ 2147ad9175SDavid du Colombier REGTMP = 31, /* used by the linker */ 2247ad9175SDavid du Colombier 2347ad9175SDavid du Colombier FREGRET = 0, 2447ad9175SDavid du Colombier FREGMIN = 17, /* first register variable */ 2547ad9175SDavid du Colombier FREGEXT = 26, /* first external register */ 2647ad9175SDavid du Colombier FREGCVI = 27, /* floating conversion constant */ 2747ad9175SDavid du Colombier FREGZERO = 28, /* both float and double */ 2847ad9175SDavid du Colombier FREGHALF = 29, /* double */ 2947ad9175SDavid du Colombier FREGONE = 30, /* double */ 3047ad9175SDavid du Colombier FREGTWO = 31 /* double */ 3147ad9175SDavid du Colombier /* 3247ad9175SDavid du Colombier * GENERAL: 3347ad9175SDavid du Colombier * 3447ad9175SDavid du Colombier * compiler allocates R3 up as temps 3547ad9175SDavid du Colombier * compiler allocates register variables R7-R27 3647ad9175SDavid du Colombier * compiler allocates external registers R30 down 3747ad9175SDavid du Colombier * 3847ad9175SDavid du Colombier * compiler allocates register variables F17-F26 3947ad9175SDavid du Colombier * compiler allocates external registers F26 down 4047ad9175SDavid du Colombier */ 4147ad9175SDavid du Colombier }; 4247ad9175SDavid du Colombier 4347ad9175SDavid du Colombier enum as 4447ad9175SDavid du Colombier { 4547ad9175SDavid du Colombier AXXX = 0, 4647ad9175SDavid du Colombier AADD, 4747ad9175SDavid du Colombier AADDCC, 4847ad9175SDavid du Colombier AADDV, 4947ad9175SDavid du Colombier AADDVCC, 5047ad9175SDavid du Colombier AADDC, 5147ad9175SDavid du Colombier AADDCCC, 5247ad9175SDavid du Colombier AADDCV, 5347ad9175SDavid du Colombier AADDCVCC, 5447ad9175SDavid du Colombier AADDME, 5547ad9175SDavid du Colombier AADDMECC, 5647ad9175SDavid du Colombier AADDMEVCC, 5747ad9175SDavid du Colombier AADDMEV, 5847ad9175SDavid du Colombier AADDE, 5947ad9175SDavid du Colombier AADDECC, 6047ad9175SDavid du Colombier AADDEVCC, 6147ad9175SDavid du Colombier AADDEV, 6247ad9175SDavid du Colombier AADDZE, 6347ad9175SDavid du Colombier AADDZECC, 6447ad9175SDavid du Colombier AADDZEVCC, 6547ad9175SDavid du Colombier AADDZEV, 6647ad9175SDavid du Colombier AAND, 6747ad9175SDavid du Colombier AANDCC, 6847ad9175SDavid du Colombier AANDN, 6947ad9175SDavid du Colombier AANDNCC, 7047ad9175SDavid du Colombier ABC, 7147ad9175SDavid du Colombier ABCL, 7247ad9175SDavid du Colombier ABEQ, 7347ad9175SDavid du Colombier ABGE, 7447ad9175SDavid du Colombier ABGT, 7547ad9175SDavid du Colombier ABL, 7647ad9175SDavid du Colombier ABLE, 7747ad9175SDavid du Colombier ABLT, 7847ad9175SDavid du Colombier ABNE, 7947ad9175SDavid du Colombier ABR, 8047ad9175SDavid du Colombier ABVC, 8147ad9175SDavid du Colombier ABVS, 8247ad9175SDavid du Colombier ACMP, 8347ad9175SDavid du Colombier ACMPU, 8447ad9175SDavid du Colombier ACNTLZW, 8547ad9175SDavid du Colombier ACNTLZWCC, 8647ad9175SDavid du Colombier ACRAND, 8747ad9175SDavid du Colombier ACRANDN, 8847ad9175SDavid du Colombier ACREQV, 8947ad9175SDavid du Colombier ACRNAND, 9047ad9175SDavid du Colombier ACRNOR, 9147ad9175SDavid du Colombier ACROR, 9247ad9175SDavid du Colombier ACRORN, 9347ad9175SDavid du Colombier ACRXOR, 9447ad9175SDavid du Colombier ADIVW, 9547ad9175SDavid du Colombier ADIVWCC, 9647ad9175SDavid du Colombier ADIVWVCC, 9747ad9175SDavid du Colombier ADIVWV, 9847ad9175SDavid du Colombier ADIVWU, 9947ad9175SDavid du Colombier ADIVWUCC, 10047ad9175SDavid du Colombier ADIVWUVCC, 10147ad9175SDavid du Colombier ADIVWUV, 10247ad9175SDavid du Colombier AEQV, 10347ad9175SDavid du Colombier AEQVCC, 10447ad9175SDavid du Colombier AEXTSB, 10547ad9175SDavid du Colombier AEXTSBCC, 10647ad9175SDavid du Colombier AEXTSH, 10747ad9175SDavid du Colombier AEXTSHCC, 10847ad9175SDavid du Colombier AFABS, 10947ad9175SDavid du Colombier AFABSCC, 11047ad9175SDavid du Colombier AFADD, 11147ad9175SDavid du Colombier AFADDCC, 11247ad9175SDavid du Colombier AFADDS, 11347ad9175SDavid du Colombier AFADDSCC, 11447ad9175SDavid du Colombier AFCMPO, 11547ad9175SDavid du Colombier AFCMPU, 11647ad9175SDavid du Colombier AFCTIW, 11747ad9175SDavid du Colombier AFCTIWCC, 11847ad9175SDavid du Colombier AFCTIWZ, 11947ad9175SDavid du Colombier AFCTIWZCC, 12047ad9175SDavid du Colombier AFDIV, 12147ad9175SDavid du Colombier AFDIVCC, 12247ad9175SDavid du Colombier AFDIVS, 12347ad9175SDavid du Colombier AFDIVSCC, 12447ad9175SDavid du Colombier AFMADD, 12547ad9175SDavid du Colombier AFMADDCC, 12647ad9175SDavid du Colombier AFMADDS, 12747ad9175SDavid du Colombier AFMADDSCC, 12847ad9175SDavid du Colombier AFMOVD, 12947ad9175SDavid du Colombier AFMOVDCC, 13047ad9175SDavid du Colombier AFMOVDU, 13147ad9175SDavid du Colombier AFMOVS, 13247ad9175SDavid du Colombier AFMOVSU, 13347ad9175SDavid du Colombier AFMSUB, 13447ad9175SDavid du Colombier AFMSUBCC, 13547ad9175SDavid du Colombier AFMSUBS, 13647ad9175SDavid du Colombier AFMSUBSCC, 13747ad9175SDavid du Colombier AFMUL, 13847ad9175SDavid du Colombier AFMULCC, 13947ad9175SDavid du Colombier AFMULS, 14047ad9175SDavid du Colombier AFMULSCC, 14147ad9175SDavid du Colombier AFNABS, 14247ad9175SDavid du Colombier AFNABSCC, 14347ad9175SDavid du Colombier AFNEG, 14447ad9175SDavid du Colombier AFNEGCC, 14547ad9175SDavid du Colombier AFNMADD, 14647ad9175SDavid du Colombier AFNMADDCC, 14747ad9175SDavid du Colombier AFNMADDS, 14847ad9175SDavid du Colombier AFNMADDSCC, 14947ad9175SDavid du Colombier AFNMSUB, 15047ad9175SDavid du Colombier AFNMSUBCC, 15147ad9175SDavid du Colombier AFNMSUBS, 15247ad9175SDavid du Colombier AFNMSUBSCC, 15347ad9175SDavid du Colombier AFRSP, 15447ad9175SDavid du Colombier AFRSPCC, 15547ad9175SDavid du Colombier AFSUB, 15647ad9175SDavid du Colombier AFSUBCC, 15747ad9175SDavid du Colombier AFSUBS, 15847ad9175SDavid du Colombier AFSUBSCC, 15947ad9175SDavid du Colombier AMOVMW, 16047ad9175SDavid du Colombier ALSW, 16147ad9175SDavid du Colombier ALWAR, 16247ad9175SDavid du Colombier AMOVWBR, 16347ad9175SDavid du Colombier AMOVB, 16447ad9175SDavid du Colombier AMOVBU, 16547ad9175SDavid du Colombier AMOVBZ, 16647ad9175SDavid du Colombier AMOVBZU, 16747ad9175SDavid du Colombier AMOVH, 16847ad9175SDavid du Colombier AMOVHBR, 16947ad9175SDavid du Colombier AMOVHU, 17047ad9175SDavid du Colombier AMOVHZ, 17147ad9175SDavid du Colombier AMOVHZU, 17247ad9175SDavid du Colombier AMOVW, 17347ad9175SDavid du Colombier AMOVWU, 17447ad9175SDavid du Colombier AMOVFL, 17547ad9175SDavid du Colombier AMOVCRFS, 17647ad9175SDavid du Colombier AMTFSB0, 17747ad9175SDavid du Colombier AMTFSB0CC, 17847ad9175SDavid du Colombier AMTFSB1, 17947ad9175SDavid du Colombier AMTFSB1CC, 18047ad9175SDavid du Colombier AMULHW, 18147ad9175SDavid du Colombier AMULHWCC, 18247ad9175SDavid du Colombier AMULHWU, 18347ad9175SDavid du Colombier AMULHWUCC, 18447ad9175SDavid du Colombier AMULLW, 18547ad9175SDavid du Colombier AMULLWCC, 18647ad9175SDavid du Colombier AMULLWVCC, 18747ad9175SDavid du Colombier AMULLWV, 18847ad9175SDavid du Colombier ANAND, 18947ad9175SDavid du Colombier ANANDCC, 19047ad9175SDavid du Colombier ANEG, 19147ad9175SDavid du Colombier ANEGCC, 19247ad9175SDavid du Colombier ANEGVCC, 19347ad9175SDavid du Colombier ANEGV, 19447ad9175SDavid du Colombier ANOR, 19547ad9175SDavid du Colombier ANORCC, 19647ad9175SDavid du Colombier AOR, 19747ad9175SDavid du Colombier AORCC, 19847ad9175SDavid du Colombier AORN, 19947ad9175SDavid du Colombier AORNCC, 20047ad9175SDavid du Colombier AREM, 20147ad9175SDavid du Colombier AREMCC, 20247ad9175SDavid du Colombier AREMV, 20347ad9175SDavid du Colombier AREMVCC, 20447ad9175SDavid du Colombier AREMU, 20547ad9175SDavid du Colombier AREMUCC, 20647ad9175SDavid du Colombier AREMUV, 20747ad9175SDavid du Colombier AREMUVCC, 20847ad9175SDavid du Colombier ARFI, 20947ad9175SDavid du Colombier ARLWMI, 21047ad9175SDavid du Colombier ARLWMICC, 21147ad9175SDavid du Colombier ARLWNM, 21247ad9175SDavid du Colombier ARLWNMCC, 21347ad9175SDavid du Colombier ASLW, 21447ad9175SDavid du Colombier ASLWCC, 21547ad9175SDavid du Colombier ASRW, 21647ad9175SDavid du Colombier ASRAW, 21747ad9175SDavid du Colombier ASRAWCC, 21847ad9175SDavid du Colombier ASRWCC, 21947ad9175SDavid du Colombier ASTSW, 22047ad9175SDavid du Colombier ASTWCCC, 22147ad9175SDavid du Colombier ASUB, 22247ad9175SDavid du Colombier ASUBCC, 22347ad9175SDavid du Colombier ASUBVCC, 22447ad9175SDavid du Colombier ASUBC, 22547ad9175SDavid du Colombier ASUBCCC, 22647ad9175SDavid du Colombier ASUBCV, 22747ad9175SDavid du Colombier ASUBCVCC, 22847ad9175SDavid du Colombier ASUBME, 22947ad9175SDavid du Colombier ASUBMECC, 23047ad9175SDavid du Colombier ASUBMEVCC, 23147ad9175SDavid du Colombier ASUBMEV, 23247ad9175SDavid du Colombier ASUBV, 23347ad9175SDavid du Colombier ASUBE, 23447ad9175SDavid du Colombier ASUBECC, 23547ad9175SDavid du Colombier ASUBEV, 23647ad9175SDavid du Colombier ASUBEVCC, 23747ad9175SDavid du Colombier ASUBZE, 23847ad9175SDavid du Colombier ASUBZECC, 23947ad9175SDavid du Colombier ASUBZEVCC, 24047ad9175SDavid du Colombier ASUBZEV, 24147ad9175SDavid du Colombier ASYNC, 24247ad9175SDavid du Colombier AXOR, 24347ad9175SDavid du Colombier AXORCC, 24447ad9175SDavid du Colombier 24547ad9175SDavid du Colombier ADCBF, 24647ad9175SDavid du Colombier ADCBI, 24747ad9175SDavid du Colombier ADCBST, 24847ad9175SDavid du Colombier ADCBT, 24947ad9175SDavid du Colombier ADCBTST, 25047ad9175SDavid du Colombier ADCBZ, 25147ad9175SDavid du Colombier AECIWX, 25247ad9175SDavid du Colombier AECOWX, 25347ad9175SDavid du Colombier AEIEIO, 25447ad9175SDavid du Colombier AICBI, 25547ad9175SDavid du Colombier AISYNC, 25647ad9175SDavid du Colombier APTESYNC, 25747ad9175SDavid du Colombier ATLBIE, 25847ad9175SDavid du Colombier ATLBIEL, 25947ad9175SDavid du Colombier ATLBSYNC, 26047ad9175SDavid du Colombier ATW, 26147ad9175SDavid du Colombier 26247ad9175SDavid du Colombier ASYSCALL, 26347ad9175SDavid du Colombier ADATA, 26447ad9175SDavid du Colombier AGLOBL, 26547ad9175SDavid du Colombier AGOK, 26647ad9175SDavid du Colombier AHISTORY, 26747ad9175SDavid du Colombier ANAME, 26847ad9175SDavid du Colombier ANOP, 26947ad9175SDavid du Colombier ARETURN, 27047ad9175SDavid du Colombier ATEXT, 27147ad9175SDavid du Colombier AWORD, 27247ad9175SDavid du Colombier AEND, 27347ad9175SDavid du Colombier ADYNT, 27447ad9175SDavid du Colombier AINIT, 27547ad9175SDavid du Colombier ASIGNAME, 27647ad9175SDavid du Colombier 27747ad9175SDavid du Colombier ARFCI, 27847ad9175SDavid du Colombier 27947ad9175SDavid du Colombier /* optional on 32-bit */ 28047ad9175SDavid du Colombier AFRES, 28147ad9175SDavid du Colombier AFRESCC, 28247ad9175SDavid du Colombier AFRSQRTE, 28347ad9175SDavid du Colombier AFRSQRTECC, 28447ad9175SDavid du Colombier AFSEL, 28547ad9175SDavid du Colombier AFSELCC, 28647ad9175SDavid du Colombier AFSQRT, 28747ad9175SDavid du Colombier AFSQRTCC, 28847ad9175SDavid du Colombier AFSQRTS, 28947ad9175SDavid du Colombier AFSQRTSCC, 29047ad9175SDavid du Colombier 29147ad9175SDavid du Colombier /* 64-bit */ 29247ad9175SDavid du Colombier 29347ad9175SDavid du Colombier ACNTLZD, 29447ad9175SDavid du Colombier ACNTLZDCC, 29547ad9175SDavid du Colombier ACMPW, /* CMP with L=0 */ 29647ad9175SDavid du Colombier ACMPWU, 29747ad9175SDavid du Colombier ADIVD, 29847ad9175SDavid du Colombier ADIVDCC, 29947ad9175SDavid du Colombier ADIVDVCC, 30047ad9175SDavid du Colombier ADIVDV, 30147ad9175SDavid du Colombier ADIVDU, 30247ad9175SDavid du Colombier ADIVDUCC, 30347ad9175SDavid du Colombier ADIVDUVCC, 30447ad9175SDavid du Colombier ADIVDUV, 30547ad9175SDavid du Colombier AEXTSW, 30647ad9175SDavid du Colombier AEXTSWCC, 30747ad9175SDavid du Colombier /* AFCFIW; AFCFIWCC */ 30847ad9175SDavid du Colombier AFCFID, 30947ad9175SDavid du Colombier AFCFIDCC, 31047ad9175SDavid du Colombier AFCTID, 31147ad9175SDavid du Colombier AFCTIDCC, 31247ad9175SDavid du Colombier AFCTIDZ, 31347ad9175SDavid du Colombier AFCTIDZCC, 31447ad9175SDavid du Colombier ALDAR, 31547ad9175SDavid du Colombier AMOVD, 31647ad9175SDavid du Colombier AMOVDU, 31747ad9175SDavid du Colombier AMOVWZ, 31847ad9175SDavid du Colombier AMOVWZU, 31947ad9175SDavid du Colombier AMULHD, 32047ad9175SDavid du Colombier AMULHDCC, 32147ad9175SDavid du Colombier AMULHDU, 32247ad9175SDavid du Colombier AMULHDUCC, 32347ad9175SDavid du Colombier AMULLD, 32447ad9175SDavid du Colombier AMULLDCC, 32547ad9175SDavid du Colombier AMULLDVCC, 32647ad9175SDavid du Colombier AMULLDV, 32747ad9175SDavid du Colombier ARFID, 32847ad9175SDavid du Colombier ARLDMI, 32947ad9175SDavid du Colombier ARLDMICC, 33047ad9175SDavid du Colombier ARLDC, 33147ad9175SDavid du Colombier ARLDCCC, 33247ad9175SDavid du Colombier ARLDCR, 33347ad9175SDavid du Colombier ARLDCRCC, 33447ad9175SDavid du Colombier ARLDCL, 33547ad9175SDavid du Colombier ARLDCLCC, 33647ad9175SDavid du Colombier ASLBIA, 33747ad9175SDavid du Colombier ASLBIE, 33847ad9175SDavid du Colombier ASLBMFEE, 33947ad9175SDavid du Colombier ASLBMFEV, 34047ad9175SDavid du Colombier ASLBMTE, 34147ad9175SDavid du Colombier ASLD, 34247ad9175SDavid du Colombier ASLDCC, 34347ad9175SDavid du Colombier ASRD, 34447ad9175SDavid du Colombier ASRAD, 34547ad9175SDavid du Colombier ASRADCC, 34647ad9175SDavid du Colombier ASRDCC, 34747ad9175SDavid du Colombier ASTDCCC, 34847ad9175SDavid du Colombier ATD, 34947ad9175SDavid du Colombier 35047ad9175SDavid du Colombier /* 64-bit pseudo operation */ 35147ad9175SDavid du Colombier ADWORD, 35247ad9175SDavid du Colombier AREMD, 35347ad9175SDavid du Colombier AREMDCC, 35447ad9175SDavid du Colombier AREMDV, 35547ad9175SDavid du Colombier AREMDVCC, 35647ad9175SDavid du Colombier AREMDU, 35747ad9175SDavid du Colombier AREMDUCC, 35847ad9175SDavid du Colombier AREMDUV, 35947ad9175SDavid du Colombier AREMDUVCC, 36047ad9175SDavid du Colombier 361*ca7c7758SDavid du Colombier /* more 64-bit operations */ 362*ca7c7758SDavid du Colombier AHRFID, 363*ca7c7758SDavid du Colombier 36447ad9175SDavid du Colombier ALAST 36547ad9175SDavid du Colombier }; 36647ad9175SDavid du Colombier 36747ad9175SDavid du Colombier /* type/name */ 36847ad9175SDavid du Colombier enum 36947ad9175SDavid du Colombier { 37047ad9175SDavid du Colombier D_GOK = 0, 37147ad9175SDavid du Colombier D_NONE, 37247ad9175SDavid du Colombier 37347ad9175SDavid du Colombier /* name */ 37447ad9175SDavid du Colombier D_EXTERN, 37547ad9175SDavid du Colombier D_STATIC, 37647ad9175SDavid du Colombier D_AUTO, 37747ad9175SDavid du Colombier D_PARAM, 37847ad9175SDavid du Colombier 37947ad9175SDavid du Colombier /* type */ 38047ad9175SDavid du Colombier D_BRANCH, 38147ad9175SDavid du Colombier D_OREG, 38247ad9175SDavid du Colombier D_CONST, 38347ad9175SDavid du Colombier D_FCONST, 38447ad9175SDavid du Colombier D_SCONST, 38547ad9175SDavid du Colombier D_REG, 38647ad9175SDavid du Colombier D_FPSCR, 38747ad9175SDavid du Colombier D_MSR, 38847ad9175SDavid du Colombier D_FREG, 38947ad9175SDavid du Colombier D_CREG, 39047ad9175SDavid du Colombier D_SPR, 39147ad9175SDavid du Colombier D_OPT, /* branch/trap option */ 39247ad9175SDavid du Colombier D_FILE, 39347ad9175SDavid du Colombier D_FILE1, 39447ad9175SDavid du Colombier D_DCR, /* device control register */ 39547ad9175SDavid du Colombier D_DCONST, 39647ad9175SDavid du Colombier 39747ad9175SDavid du Colombier /* reg names iff type is D_SPR */ 39847ad9175SDavid du Colombier D_XER = 1, 39947ad9175SDavid du Colombier D_LR = 8, 40047ad9175SDavid du Colombier D_CTR = 9 40147ad9175SDavid du Colombier /* and many supervisor level registers */ 40247ad9175SDavid du Colombier }; 40347ad9175SDavid du Colombier 40447ad9175SDavid du Colombier /* 40547ad9175SDavid du Colombier * this is the ranlib header 40647ad9175SDavid du Colombier */ 40747ad9175SDavid du Colombier #define SYMDEF "__.SYMDEF" 40847ad9175SDavid du Colombier 40947ad9175SDavid du Colombier /* 41047ad9175SDavid du Colombier * this is the simulated IEEE floating point 41147ad9175SDavid du Colombier */ 41247ad9175SDavid du Colombier typedef struct ieee Ieee; 41347ad9175SDavid du Colombier struct ieee 41447ad9175SDavid du Colombier { 41547ad9175SDavid du Colombier long l; /* contains ls-man 0xffffffff */ 41647ad9175SDavid du Colombier long h; /* contains sign 0x80000000 41747ad9175SDavid du Colombier exp 0x7ff00000 41847ad9175SDavid du Colombier ms-man 0x000fffff */ 41947ad9175SDavid du Colombier }; 420