123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263 |
- #define NSNAME 8
- #define NSYM 50
- #define NREG 32
- #define NOPROF (1<<0)
- #define DUPOK (1<<1)
- enum
- {
- REGZERO = 0, /* always zero */
- REGSP = 1, /* stack pointer */
- REGSB = 2, /* static pointer */
- REGSB1 = 3, /* (possible) second static pointer */
- REGEXT = 6, /* first external register, grows-- */
- REGRET = 7, /* return register and first temp, grows++ */
- REGTMP = 14, /* used by the loader */
- REGLINK = 15, /* subroutine linkage */
- REGARG = 7, /* first arg passed in */
- FREGRET = 0,
- FREGEXT = 22, /* first external register */
- FREGZERO = 24, /* both float and double */
- FREGHALF = 26, /* double */
- FREGONE = 28, /* double */
- FREGTWO = 30 /* double */
- /*
- * GENERAL:
- *
- * compiler allocates R7 up as temps
- * compiler allocates external registers R6 down
- * compiler allocates register variables F4-F22
- * compiler allocates external registers F22 down
- */
- };
- enum as
- {
- AXXX = 0,
- AADD,
- AADDCC,
- AADDX,
- AADDXCC,
- AAND,
- AANDCC,
- AANDN,
- AANDNCC,
- ABA,
- ABCC,
- ABCS,
- ABE,
- ABG,
- ABGE,
- ABGU,
- ABL,
- ABLE,
- ABLEU,
- ABN,
- ABNE,
- ABNEG,
- ABPOS,
- ABVC,
- ABVS,
- ACB0,
- ACB01,
- ACB012,
- ACB013,
- ACB02,
- ACB023,
- ACB03,
- ACB1,
- ACB12,
- ACB123,
- ACB13,
- ACB2,
- ACB23,
- ACB3,
- ACBA,
- ACBN,
- ACMP, /* pseudo op */
- ACPOP1,
- ACPOP2,
- ADATA,
- ADIV,
- ADIVL,
- AFABSD, /* pseudo op */
- AFABSF,
- AFABSX, /* pseudo op */
- AFADDD,
- AFADDF,
- AFADDX,
- AFBA,
- AFBE,
- AFBG,
- AFBGE,
- AFBL,
- AFBLE,
- AFBLG,
- AFBN,
- AFBNE,
- AFBO,
- AFBU,
- AFBUE,
- AFBUG,
- AFBUGE,
- AFBUL,
- AFBULE,
- AFCMPD,
- AFCMPED,
- AFCMPEF,
- AFCMPEX,
- AFCMPF,
- AFCMPX,
- AFDIVD,
- AFDIVF,
- AFDIVX,
- AFMOVD, /* pseudo op */
- AFMOVDF,
- AFMOVDW,
- AFMOVDX,
- AFMOVF,
- AFMOVFD,
- AFMOVFW,
- AFMOVFX,
- AFMOVWD,
- AFMOVWF,
- AFMOVWX,
- AFMOVX, /* pseudo op */
- AFMOVXD,
- AFMOVXF,
- AFMOVXW,
- AFMULD,
- AFMULF,
- AFMULX,
- AFNEGD, /* pseudo op */
- AFNEGF,
- AFNEGX, /* pseudo op */
- AFSQRTD,
- AFSQRTF,
- AFSQRTX,
- AFSUBD,
- AFSUBF,
- AFSUBX,
- AGLOBL,
- AGOK,
- AHISTORY,
- AIFLUSH,
- AJMPL,
- AJMP,
- AMOD,
- AMODL,
- AMOVB,
- AMOVBU,
- AMOVD,
- AMOVH,
- AMOVHU,
- AMOVW,
- AMUL,
- AMULSCC,
- ANAME,
- ANOP,
- AOR,
- AORCC,
- AORN,
- AORNCC,
- ARESTORE,
- ARETT,
- ARETURN,
- ASAVE,
- ASLL,
- ASRA,
- ASRL,
- ASUB,
- ASUBCC,
- ASUBX,
- ASUBXCC,
- ASWAP,
- ATA,
- ATADDCC,
- ATADDCCTV,
- ATAS,
- ATCC,
- ATCS,
- ATE,
- ATEXT,
- ATG,
- ATGE,
- ATGU,
- ATL,
- ATLE,
- ATLEU,
- ATN,
- ATNE,
- ATNEG,
- ATPOS,
- ATSUBCC,
- ATSUBCCTV,
- ATVC,
- ATVS,
- AUNIMP,
- AWORD,
- AXNOR,
- AXNORCC,
- AXOR,
- AXORCC,
- AEND,
- ADYNT,
- AINIT,
- ASIGNAME,
- ALAST
- };
- /* type/name */
- enum
- {
- D_GOK = 0,
- D_NONE,
- /* name */
- D_EXTERN,
- D_STATIC,
- D_AUTO,
- D_PARAM,
- /* type */
- D_BRANCH,
- D_OREG,
- D_ASI,
- D_CONST,
- D_FCONST,
- D_SCONST,
- D_REG,
- D_FREG,
- D_CREG,
- D_PREG,
- D_FILE,
- D_FILE1,
- /* reg names iff type is D_PREG */
- D_CPQ = 0,
- D_CSR,
- D_FPQ,
- D_FSR,
- D_PSR,
- D_TBR,
- D_WIM,
- D_Y
- };
- /*
- * 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 */
- };
|