/* * powerpc 64 */#define NSNAME 8#define NSYM 50#define NREG 32 #define NOPROF (1<<0)#define DUPOK (1<<1) enum{ REGZERO = 0, /* set to zero */ REGSP = 1, REGSB = 2, REGRET = 3, REGARG = 3, REGMIN = 7, /* register variables allocated from here to REGMAX */ REGMAX = 27, REGEXT = 30, /* external registers allocated from here down */ REGTMP = 31, /* used by the linker */ FREGRET = 0, FREGMIN = 17, /* first register variable */ FREGEXT = 26, /* first external register */ FREGCVI = 27, /* floating conversion constant */ FREGZERO = 28, /* both float and double */ FREGHALF = 29, /* double */ FREGONE = 30, /* double */ FREGTWO = 31 /* double *//* * GENERAL: * * compiler allocates R3 up as temps * compiler allocates register variables R7-R27 * compiler allocates external registers R30 down * * compiler allocates register variables F17-F26 * compiler allocates external registers F26 down */}; enum as{ AXXX = 0, AADD, AADDCC, AADDV, AADDVCC, AADDC, AADDCCC, AADDCV, AADDCVCC, AADDME, AADDMECC, AADDMEVCC, AADDMEV, AADDE, AADDECC, AADDEVCC, AADDEV, AADDZE, AADDZECC, AADDZEVCC, AADDZEV, AAND, AANDCC, AANDN, AANDNCC, ABC, ABCL, ABEQ, ABGE, ABGT, ABL, ABLE, ABLT, ABNE, ABR, ABVC, ABVS, ACMP, ACMPU, ACNTLZW, ACNTLZWCC, ACRAND, ACRANDN, ACREQV, ACRNAND, ACRNOR, ACROR, ACRORN, ACRXOR, ADIVW, ADIVWCC, ADIVWVCC, ADIVWV, ADIVWU, ADIVWUCC, ADIVWUVCC, ADIVWUV, AEQV, AEQVCC, AEXTSB, AEXTSBCC, AEXTSH, AEXTSHCC, AFABS, AFABSCC, AFADD, AFADDCC, AFADDS, AFADDSCC, AFCMPO, AFCMPU, AFCTIW, AFCTIWCC, AFCTIWZ, AFCTIWZCC, AFDIV, AFDIVCC, AFDIVS, AFDIVSCC, AFMADD, AFMADDCC, AFMADDS, AFMADDSCC, AFMOVD, AFMOVDCC, AFMOVDU, AFMOVS, AFMOVSU, AFMSUB, AFMSUBCC, AFMSUBS, AFMSUBSCC, AFMUL, AFMULCC, AFMULS, AFMULSCC, AFNABS, AFNABSCC, AFNEG, AFNEGCC, AFNMADD, AFNMADDCC, AFNMADDS, AFNMADDSCC, AFNMSUB, AFNMSUBCC, AFNMSUBS, AFNMSUBSCC, AFRSP, AFRSPCC, AFSUB, AFSUBCC, AFSUBS, AFSUBSCC, AMOVMW, ALSW, ALWAR, AMOVWBR, AMOVB, AMOVBU, AMOVBZ, AMOVBZU, AMOVH, AMOVHBR, AMOVHU, AMOVHZ, AMOVHZU, AMOVW, AMOVWU, AMOVFL, AMOVCRFS, AMTFSB0, AMTFSB0CC, AMTFSB1, AMTFSB1CC, AMULHW, AMULHWCC, AMULHWU, AMULHWUCC, AMULLW, AMULLWCC, AMULLWVCC, AMULLWV, ANAND, ANANDCC, ANEG, ANEGCC, ANEGVCC, ANEGV, ANOR, ANORCC, AOR, AORCC, AORN, AORNCC, AREM, AREMCC, AREMV, AREMVCC, AREMU, AREMUCC, AREMUV, AREMUVCC, ARFI, ARLWMI, ARLWMICC, ARLWNM, ARLWNMCC, ASLW, ASLWCC, ASRW, ASRAW, ASRAWCC, ASRWCC, ASTSW, ASTWCCC, ASUB, ASUBCC, ASUBVCC, ASUBC, ASUBCCC, ASUBCV, ASUBCVCC, ASUBME, ASUBMECC, ASUBMEVCC, ASUBMEV, ASUBV, ASUBE, ASUBECC, ASUBEV, ASUBEVCC, ASUBZE, ASUBZECC, ASUBZEVCC, ASUBZEV, ASYNC, AXOR, AXORCC, ADCBF, ADCBI, ADCBST, ADCBT, ADCBTST, ADCBZ, AECIWX, AECOWX, AEIEIO, AICBI, AISYNC, APTESYNC, ATLBIE, ATLBIEL, ATLBSYNC, ATW, ASYSCALL, ADATA, AGLOBL, AGOK, AHISTORY, ANAME, ANOP, ARETURN, ATEXT, AWORD, AEND, ADYNT, AINIT, ASIGNAME, ARFCI, /* optional on 32-bit */ AFRES, AFRESCC, AFRSQRTE, AFRSQRTECC, AFSEL, AFSELCC, AFSQRT, AFSQRTCC, AFSQRTS, AFSQRTSCC, /* 64-bit */ ACNTLZD, ACNTLZDCC, ACMPW, /* CMP with L=0 */ ACMPWU, ADIVD, ADIVDCC, ADIVDVCC, ADIVDV, ADIVDU, ADIVDUCC, ADIVDUVCC, ADIVDUV, AEXTSW, AEXTSWCC, /* AFCFIW; AFCFIWCC */ AFCFID, AFCFIDCC, AFCTID, AFCTIDCC, AFCTIDZ, AFCTIDZCC, ALDAR, AMOVD, AMOVDU, AMOVWZ, AMOVWZU, AMULHD, AMULHDCC, AMULHDU, AMULHDUCC, AMULLD, AMULLDCC, AMULLDVCC, AMULLDV, ARFID, ARLDMI, ARLDMICC, ARLDC, ARLDCCC, ARLDCR, ARLDCRCC, ARLDCL, ARLDCLCC, ASLBIA, ASLBIE, ASLBMFEE, ASLBMFEV, ASLBMTE, ASLD, ASLDCC, ASRD, ASRAD, ASRADCC, ASRDCC, ASTDCCC, ATD, /* 64-bit pseudo operation */ ADWORD, AREMD, AREMDCC, AREMDV, AREMDVCC, AREMDU, AREMDUCC, AREMDUV, AREMDUVCC, /* more 64-bit operations */ AHRFID, ALAST}; /* type/name */enum{ D_GOK = 0, D_NONE, /* name */ D_EXTERN, D_STATIC, D_AUTO, D_PARAM, /* type */ D_BRANCH, D_OREG, D_CONST, D_FCONST, D_SCONST, D_REG, D_FPSCR, D_MSR, D_FREG, D_CREG, D_SPR, D_OPT, /* branch/trap option */ D_FILE, D_FILE1, D_DCR, /* device control register */ D_DCONST, /* reg names iff type is D_SPR */ D_XER = 1, D_LR = 8, D_CTR = 9 /* and many supervisor level registers */}; /* * this is the ranlib header */#define SYMDEF "__.SYMDEF" /* * this is the simulated IEEE floating point */typedef struct ieee Ieee;struct ieee{ long l; /* contains ls-man 0xffffffff */ long h; /* contains sign 0x80000000 exp 0x7ff00000 ms-man 0x000fffff */};
/*
* powerpc 64
*/
#define NSNAME 8
#define NSYM 50
#define NREG 32
#define NOPROF (1<<0)
#define DUPOK (1<<1)
enum
{
REGZERO = 0, /* set to zero */
REGSP = 1,
REGSB = 2,
REGRET = 3,
REGARG = 3,
REGMIN = 7, /* register variables allocated from here to REGMAX */
REGMAX = 27,
REGEXT = 30, /* external registers allocated from here down */
REGTMP = 31, /* used by the linker */
FREGRET = 0,
FREGMIN = 17, /* first register variable */
FREGEXT = 26, /* first external register */
FREGCVI = 27, /* floating conversion constant */
FREGZERO = 28, /* both float and double */
FREGHALF = 29, /* double */
FREGONE = 30, /* double */
FREGTWO = 31 /* double */
/*
* GENERAL:
*
* compiler allocates R3 up as temps
* compiler allocates register variables R7-R27
* compiler allocates external registers R30 down
*
* compiler allocates register variables F17-F26
* compiler allocates external registers F26 down
*/
};
enum as
{
AXXX = 0,
AADD,
AADDCC,
AADDV,
AADDVCC,
AADDC,
AADDCCC,
AADDCV,
AADDCVCC,
AADDME,
AADDMECC,
AADDMEVCC,
AADDMEV,
AADDE,
AADDECC,
AADDEVCC,
AADDEV,
AADDZE,
AADDZECC,
AADDZEVCC,
AADDZEV,
AAND,
AANDCC,
AANDN,
AANDNCC,
ABC,
ABCL,
ABEQ,
ABGE,
ABGT,
ABL,
ABLE,
ABLT,
ABNE,
ABR,
ABVC,
ABVS,
ACMP,
ACMPU,
ACNTLZW,
ACNTLZWCC,
ACRAND,
ACRANDN,
ACREQV,
ACRNAND,
ACRNOR,
ACROR,
ACRORN,
ACRXOR,
ADIVW,
ADIVWCC,
ADIVWVCC,
ADIVWV,
ADIVWU,
ADIVWUCC,
ADIVWUVCC,
ADIVWUV,
AEQV,
AEQVCC,
AEXTSB,
AEXTSBCC,
AEXTSH,
AEXTSHCC,
AFABS,
AFABSCC,
AFADD,
AFADDCC,
AFADDS,
AFADDSCC,
AFCMPO,
AFCMPU,
AFCTIW,
AFCTIWCC,
AFCTIWZ,
AFCTIWZCC,
AFDIV,
AFDIVCC,
AFDIVS,
AFDIVSCC,
AFMADD,
AFMADDCC,
AFMADDS,
AFMADDSCC,
AFMOVD,
AFMOVDCC,
AFMOVDU,
AFMOVS,
AFMOVSU,
AFMSUB,
AFMSUBCC,
AFMSUBS,
AFMSUBSCC,
AFMUL,
AFMULCC,
AFMULS,
AFMULSCC,
AFNABS,
AFNABSCC,
AFNEG,
AFNEGCC,
AFNMADD,
AFNMADDCC,
AFNMADDS,
AFNMADDSCC,
AFNMSUB,
AFNMSUBCC,
AFNMSUBS,
AFNMSUBSCC,
AFRSP,
AFRSPCC,
AFSUB,
AFSUBCC,
AFSUBS,
AFSUBSCC,
AMOVMW,
ALSW,
ALWAR,
AMOVWBR,
AMOVB,
AMOVBU,
AMOVBZ,
AMOVBZU,
AMOVH,
AMOVHBR,
AMOVHU,
AMOVHZ,
AMOVHZU,
AMOVW,
AMOVWU,
AMOVFL,
AMOVCRFS,
AMTFSB0,
AMTFSB0CC,
AMTFSB1,
AMTFSB1CC,
AMULHW,
AMULHWCC,
AMULHWU,
AMULHWUCC,
AMULLW,
AMULLWCC,
AMULLWVCC,
AMULLWV,
ANAND,
ANANDCC,
ANEG,
ANEGCC,
ANEGVCC,
ANEGV,
ANOR,
ANORCC,
AOR,
AORCC,
AORN,
AORNCC,
AREM,
AREMCC,
AREMV,
AREMVCC,
AREMU,
AREMUCC,
AREMUV,
AREMUVCC,
ARFI,
ARLWMI,
ARLWMICC,
ARLWNM,
ARLWNMCC,
ASLW,
ASLWCC,
ASRW,
ASRAW,
ASRAWCC,
ASRWCC,
ASTSW,
ASTWCCC,
ASUB,
ASUBCC,
ASUBVCC,
ASUBC,
ASUBCCC,
ASUBCV,
ASUBCVCC,
ASUBME,
ASUBMECC,
ASUBMEVCC,
ASUBMEV,
ASUBV,
ASUBE,
ASUBECC,
ASUBEV,
ASUBEVCC,
ASUBZE,
ASUBZECC,
ASUBZEVCC,
ASUBZEV,
ASYNC,
AXOR,
AXORCC,
ADCBF,
ADCBI,
ADCBST,
ADCBT,
ADCBTST,
ADCBZ,
AECIWX,
AECOWX,
AEIEIO,
AICBI,
AISYNC,
APTESYNC,
ATLBIE,
ATLBIEL,
ATLBSYNC,
ATW,
ASYSCALL,
ADATA,
AGLOBL,
AGOK,
AHISTORY,
ANAME,
ANOP,
ARETURN,
ATEXT,
AWORD,
AEND,
ADYNT,
AINIT,
ASIGNAME,
ARFCI,
/* optional on 32-bit */
AFRES,
AFRESCC,
AFRSQRTE,
AFRSQRTECC,
AFSEL,
AFSELCC,
AFSQRT,
AFSQRTCC,
AFSQRTS,
AFSQRTSCC,
/* 64-bit */
ACNTLZD,
ACNTLZDCC,
ACMPW, /* CMP with L=0 */
ACMPWU,
ADIVD,
ADIVDCC,
ADIVDVCC,
ADIVDV,
ADIVDU,
ADIVDUCC,
ADIVDUVCC,
ADIVDUV,
AEXTSW,
AEXTSWCC,
/* AFCFIW; AFCFIWCC */
AFCFID,
AFCFIDCC,
AFCTID,
AFCTIDCC,
AFCTIDZ,
AFCTIDZCC,
ALDAR,
AMOVD,
AMOVDU,
AMOVWZ,
AMOVWZU,
AMULHD,
AMULHDCC,
AMULHDU,
AMULHDUCC,
AMULLD,
AMULLDCC,
AMULLDVCC,
AMULLDV,
ARFID,
ARLDMI,
ARLDMICC,
ARLDC,
ARLDCCC,
ARLDCR,
ARLDCRCC,
ARLDCL,
ARLDCLCC,
ASLBIA,
ASLBIE,
ASLBMFEE,
ASLBMFEV,
ASLBMTE,
ASLD,
ASLDCC,
ASRD,
ASRAD,
ASRADCC,
ASRDCC,
ASTDCCC,
ATD,
/* 64-bit pseudo operation */
ADWORD,
AREMD,
AREMDCC,
AREMDV,
AREMDVCC,
AREMDU,
AREMDUCC,
AREMDUV,
AREMDUVCC,
/* more 64-bit operations */
AHRFID,
ALAST
};
/* type/name */
enum
{
D_GOK = 0,
D_NONE,
/* name */
D_EXTERN,
D_STATIC,
D_AUTO,
D_PARAM,
/* type */
D_BRANCH,
D_OREG,
D_CONST,
D_FCONST,
D_SCONST,
D_REG,
D_FPSCR,
D_MSR,
D_FREG,
D_CREG,
D_SPR,
D_OPT, /* branch/trap option */
D_FILE,
D_FILE1,
D_DCR, /* device control register */
D_DCONST,
/* reg names iff type is D_SPR */
D_XER = 1,
D_LR = 8,
D_CTR = 9
/* and many supervisor level registers */
};
/*
* this is the ranlib header
*/
#define SYMDEF "__.SYMDEF"
/*
* this is the simulated IEEE floating point
*/
typedef struct ieee Ieee;
struct ieee
{
long l; /* contains ls-man 0xffffffff */
long h; /* contains sign 0x80000000
exp 0x7ff00000
ms-man 0x000fffff */
};