123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274 |
- /*
- * This file is part of the UCB release of Plan 9. It is subject to the license
- * terms in the LICENSE file found in the top-level directory of this
- * distribution and at http://akaros.cs.berkeley.edu/files/Plan9License. No
- * part of the UCB release of Plan 9, including this file, may be copied,
- * modified, propagated, or distributed except according to the terms contained
- * in the LICENSE file.
- */
- #define NSNAME 8
- #define NSYM 50
- #define NREG 32
- #define NOPROF (1<<0)
- #define DUPOK (1<<1)
- enum
- {
- REGRET = 0, /* return register and first temp, grows++ */
- REGARG = 0, /* first arg passed in */
- REGEXT = 15, /* first external register, grows-- */
- REGLINK = 26, /* subroutine linkage */
- REGTMP = 27, /* used by the loader */
- REGTMP2 = 28, /* used by the loader */
- REGSB = 29, /* static pointer */
- REGSP = 30, /* stack pointer */
- REGZERO = 31, /* always zero */
- FREGRET = 0,
- FREGEXT = 27, /* first external register */
- FREGHALF = 28, /* double */
- FREGONE = 29, /* double */
- FREGTWO = 30, /* double */
- FREGZERO = 31, /* both float and double */
- };
- enum as
- {
- AXXX,
- AGOK,
- ATEXT,
- ADATA,
- AGLOBL,
- AHISTORY,
- ANAME,
- AWORD,
- ANOP,
- AMOVL,
- AMOVLU,
- AMOVQ,
- AMOVQU,
- AMOVS,
- AMOVT,
- AMOVB,
- AMOVBU,
- AMOVW,
- AMOVWU,
- AMOVA,
- AMOVAH,
- AMOVLL,
- AMOVQL,
- AMOVLC,
- AMOVQC,
- AMOVQP,
- AMOVLP,
- AADDL,
- AADDLV,
- AADDQ,
- AADDQV,
- AS4ADDL,
- AS4ADDQ,
- AS8ADDL,
- AS8ADDQ,
- AS4SUBL,
- AS4SUBQ,
- AS8SUBL,
- AS8SUBQ,
- ASUBL,
- ASUBLV,
- ASUBQ,
- ASUBQV,
- ACMPEQ,
- ACMPGT,
- ACMPGE,
- ACMPUGT,
- ACMPUGE,
- ACMPBLE,
- AAND,
- AANDNOT,
- AOR,
- AORNOT,
- AXOR,
- AXORNOT,
- ACMOVEQ,
- ACMOVNE,
- ACMOVLT,
- ACMOVGE,
- ACMOVLE,
- ACMOVGT,
- ACMOVLBC,
- ACMOVLBS,
- AMULL,
- AMULQ,
- AMULLV,
- AMULQV,
- AUMULH,
- ADIVQ,
- AMODQ,
- ADIVQU,
- AMODQU,
- ADIVL,
- AMODL,
- ADIVLU,
- AMODLU,
- ASLLQ,
- ASRLQ,
- ASRAQ,
- ASLLL,
- ASRLL,
- ASRAL,
- AEXTBL,
- AEXTWL,
- AEXTLL,
- AEXTQL,
- AEXTWH,
- AEXTLH,
- AEXTQH,
- AINSBL,
- AINSWL,
- AINSLL,
- AINSQL,
- AINSWH,
- AINSLH,
- AINSQH,
- AMSKBL,
- AMSKWL,
- AMSKLL,
- AMSKQL,
- AMSKWH,
- AMSKLH,
- AMSKQH,
- AZAP,
- AZAPNOT,
- AJMP,
- AJSR,
- ARET,
- ABR,
- ABSR,
- ABEQ,
- ABNE,
- ABLT,
- ABGE,
- ABLE,
- ABGT,
- ABLBC,
- ABLBS,
- AFBEQ,
- AFBNE,
- AFBLT,
- AFBGE,
- AFBLE,
- AFBGT,
- ATRAPB,
- AMB,
- AFETCH,
- AFETCHM,
- ARPCC,
- ACPYS,
- ACPYSN,
- ACPYSE,
- ACVTLQ,
- ACVTQL,
- AFCMOVEQ,
- AFCMOVNE,
- AFCMOVLT,
- AFCMOVGE,
- AFCMOVLE,
- AFCMOVGT,
- AADDS,
- AADDT,
- ACMPTEQ,
- ACMPTGT,
- ACMPTGE,
- ACMPTUN,
- ACVTQS,
- ACVTQT,
- ACVTTS,
- ACVTTQ,
- ADIVS,
- ADIVT,
- AMULS,
- AMULT,
- ASUBS,
- ASUBT,
- ACALL_PAL,
- AREI,
- 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_CONST,
- D_FCONST,
- D_SCONST,
- D_REG,
- D_FREG,
- D_FCREG,
- D_PREG,
- D_PCC,
- D_FILE,
- D_FILE1,
- };
- /*
- * 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 */
- };
|