123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335 |
- #define NSNAME 8
- #define NSYM 50
- #define NREG 32
- #define NOPROF (1<<0)
- #define DUPOK (1<<1)
- enum
- {
- REGZERO = 0, /* NOT 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-R28
- * compiler allocates external registers R29 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,
- AMOVCRFXXX,
- AMOVCRFS,
- AMOVCRXRXXX,
- AMOVFCRXXX,
- AMFFSXXX,
- AMFFSCCXXX,
- AMTCRFXXX,
- AMTFSB0,
- AMTFSB0CC,
- AMTFSB1,
- AMTFSB1CC,
- AMTFSFXXX,
- AMTFSFCCXXX,
- AMTFSFIXXX,
- AMTFSFIXXXCC,
- 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,
- AILLXXX1,
- ASTSW,
- ASTWBRXXX,
- 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,
- ATLBIE,
- ATW,
- ASYSCALL,
- ADATA,
- AGLOBL,
- AGOK,
- AHISTORY,
- ANAME,
- ANOP,
- ARETURN,
- ATEXT,
- AWORD,
- AEND,
- ADYNT,
- AINIT,
- 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_SREG, /* segment register */
- D_OPT, /* branch/trap option */
- D_FILE,
- D_FILE1,
- /* 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 */
- };
|