plan9fox/sys/src/cmd/2c/2.out.h
2011-03-30 19:35:09 +03:00

524 lines
5 KiB
C

#define NSYM 50
#define NSNAME 8
/* R0 is return */
#define REGEXT 7
/* A7 is sp A6 is sb */
#define AREGEXT 5
/* F0 is ret */
#define FREGEXT 7
enum as
{
AXXX = 0,
AABCD,
AADDB,
AADDL,
AADDW,
AADDXB,
AADDXL,
AADDXW,
AADJSP,
AANDB,
AANDL,
AANDW,
AASLB,
AASLL,
AASLW,
AASRB,
AASRL,
AASRW,
ABCASE,
ABCC,
ABCHG,
ABCLR,
ABCS,
ABEQ,
ABFCHG,
ABFCLR,
ABFEXTS,
ABFEXTU,
ABFFFO,
ABFINS,
ABFSET,
ABFTST,
ABGE,
ABGT,
ABHI,
ABKPT,
ABLE,
ABLS,
ABLT,
ABMI,
ABNE,
ABPL,
ABRA,
ABSET,
ABSR,
ABTST,
ABVC,
ABVS,
ACALLM,
ACAS2B,
ACAS2L,
ACAS2W,
ACASB,
ACASEW,
ACASL,
ACASW,
ACHK2B,
ACHK2L,
ACHK2W,
ACHKL,
ACHKW,
ACLRB,
ACLRL,
ACLRW,
ACMP2B,
ACMP2L,
ACMP2W,
ACMPB,
ACMPL,
ACMPW,
ADATA,
ADBCC,
ADBCS,
ADBEQ,
ADBF,
ADBGE,
ADBGT,
ADBHI,
ADBLE,
ADBLS,
ADBLT,
ADBMI,
ADBNE,
ADBPL,
ADBT,
ADBVC,
ADBVS,
ADIVSL,
ADIVSW,
ADIVUL,
ADIVUW,
AEND,
AEORB,
AEORL,
AEORW,
AEXG,
AEXTBL,
AEXTBW,
AEXTWL,
AFABSB,
AFABSD,
AFABSF,
AFABSL,
AFABSW,
AFACOSB,
AFACOSD,
AFACOSF,
AFACOSL,
AFACOSW,
AFADDB,
AFADDD,
AFADDF,
AFADDL,
AFADDW,
AFASINB,
AFASIND,
AFASINF,
AFASINL,
AFASINW,
AFATANB,
AFATAND,
AFATANF,
AFATANHB,
AFATANHD,
AFATANHF,
AFATANHL,
AFATANHW,
AFATANL,
AFATANW,
AFBEQ,
AFBF,
AFBGE,
AFBGT,
AFBLE,
AFBLT,
AFBNE,
AFBT,
AFCMPB,
AFCMPD,
AFCMPF,
AFCMPL,
AFCMPW,
AFCOSB,
AFCOSD,
AFCOSF,
AFCOSHB,
AFCOSHD,
AFCOSHF,
AFCOSHL,
AFCOSHW,
AFCOSL,
AFCOSW,
AFDBEQ,
AFDBF,
AFDBGE,
AFDBGT,
AFDBLE,
AFDBLT,
AFDBNE,
AFDBT,
AFDIVB,
AFDIVD,
AFDIVF,
AFDIVL,
AFDIVW,
AFETOXB,
AFETOXD,
AFETOXF,
AFETOXL,
AFETOXM1B,
AFETOXM1D,
AFETOXM1F,
AFETOXM1L,
AFETOXM1W,
AFETOXW,
AFGETEXPB,
AFGETEXPD,
AFGETEXPF,
AFGETEXPL,
AFGETEXPW,
AFGETMANB,
AFGETMAND,
AFGETMANF,
AFGETMANL,
AFGETMANW,
AFINTB,
AFINTD,
AFINTF,
AFINTL,
AFINTRZB,
AFINTRZD,
AFINTRZF,
AFINTRZL,
AFINTRZW,
AFINTW,
AFLOG10B,
AFLOG10D,
AFLOG10F,
AFLOG10L,
AFLOG10W,
AFLOG2B,
AFLOG2D,
AFLOG2F,
AFLOG2L,
AFLOG2W,
AFLOGNB,
AFLOGND,
AFLOGNF,
AFLOGNL,
AFLOGNP1B,
AFLOGNP1D,
AFLOGNP1F,
AFLOGNP1L,
AFLOGNP1W,
AFLOGNW,
AFMODB,
AFMODD,
AFMODF,
AFMODL,
AFMODW,
AFMOVEB,
AFMOVED,
AFMOVEF,
AFMOVEL,
AFMOVEM,
AFMOVEMC,
AFMOVEW,
AFMULB,
AFMULD,
AFMULF,
AFMULL,
AFMULW,
AFNEGB,
AFNEGD,
AFNEGF,
AFNEGL,
AFNEGW,
AFREMB,
AFREMD,
AFREMF,
AFREML,
AFREMW,
AFRESTORE,
AFSAVE,
AFSCALEB,
AFSCALED,
AFSCALEF,
AFSCALEL,
AFSCALEW,
AFSEQ,
AFSF,
AFSGE,
AFSGT,
AFSINB,
AFSIND,
AFSINF,
AFSINHB,
AFSINHD,
AFSINHF,
AFSINHL,
AFSINHW,
AFSINL,
AFSINW,
AFSLE,
AFSLT,
AFSNE,
AFSQRTB,
AFSQRTD,
AFSQRTF,
AFSQRTL,
AFSQRTW,
AFST,
AFSUBB,
AFSUBD,
AFSUBF,
AFSUBL,
AFSUBW,
AFTANB,
AFTAND,
AFTANF,
AFTANHB,
AFTANHD,
AFTANHF,
AFTANHL,
AFTANHW,
AFTANL,
AFTANW,
AFTENTOXB,
AFTENTOXD,
AFTENTOXF,
AFTENTOXL,
AFTENTOXW,
AFTSTB,
AFTSTD,
AFTSTF,
AFTSTL,
AFTSTW,
AFTWOTOXB,
AFTWOTOXD,
AFTWOTOXF,
AFTWOTOXL,
AFTWOTOXW,
AGLOBL,
AGOK,
AHISTORY,
AILLEG,
AINSTR,
AJMP,
AJSR,
ALEA,
ALINKL,
ALINKW,
ALOCATE,
ALONG,
ALSLB,
ALSLL,
ALSLW,
ALSRB,
ALSRL,
ALSRW,
AMOVB,
AMOVEM,
AMOVEPL,
AMOVEPW,
AMOVESB,
AMOVESL,
AMOVESW,
AMOVL,
AMOVW,
AMULSL,
AMULSW,
AMULUL,
AMULUW,
ANAME,
ANBCD,
ANEGB,
ANEGL,
ANEGW,
ANEGXB,
ANEGXL,
ANEGXW,
ANOP,
ANOTB,
ANOTL,
ANOTW,
AORB,
AORL,
AORW,
APACK,
APEA,
ARESET,
AROTLB,
AROTLL,
AROTLW,
AROTRB,
AROTRL,
AROTRW,
AROXLB,
AROXLL,
AROXLW,
AROXRB,
AROXRL,
AROXRW,
ARTD,
ARTE,
ARTM,
ARTR,
ARTS,
ASBCD,
ASCC,
ASCS,
ASEQ,
ASF,
ASGE,
ASGT,
ASHI,
ASLE,
ASLS,
ASLT,
ASMI,
ASNE,
ASPL,
AST,
ASTOP,
ASUBB,
ASUBL,
ASUBW,
ASUBXB,
ASUBXL,
ASUBXW,
ASVC,
ASVS,
ASWAP,
ASYS,
ATAS,
ATEXT,
ATRAP,
ATRAPCC,
ATRAPCS,
ATRAPEQ,
ATRAPF,
ATRAPGE,
ATRAPGT,
ATRAPHI,
ATRAPLE,
ATRAPLS,
ATRAPLT,
ATRAPMI,
ATRAPNE,
ATRAPPL,
ATRAPT,
ATRAPV,
ATRAPVC,
ATRAPVS,
ATSTB,
ATSTL,
ATSTW,
AUNLK,
AUNPK,
AWORD,
ASIGNAME,
ALAST
};
enum
{
NREG = 8,
D_R0 = 0,
D_A0 = NREG,
D_F0 = D_A0+NREG,
D_NONE = D_F0+NREG,
D_TOS,
D_BRANCH,
D_STACK,
D_TREE,
D_EXTERN,
D_STATIC,
D_AUTO,
D_PARAM,
D_CONST,
D_FCONST,
D_QUICK,
D_CCR,
D_SR,
D_SFC,
D_CACR,
D_USP,
D_VBR,
D_CAAR,
D_MSP,
D_ISP,
D_DFC,
D_FPCR,
D_FPSR,
D_FPIAR,
D_SCONST,
D_FILE,
D_TC, /* new for 68040 */
D_ITT0,
D_ITT1,
D_DTT0,
D_DTT1,
D_MMUSR,
D_URP,
D_SRP,
D_FILE1,
D_MASK = 63/(D_SRP>=63?0:1),
I_DIR = (D_MASK+1)*0,
I_INDINC = (D_MASK+1)*1,
I_INDDEC = (D_MASK+1)*2,
I_INDIR = (D_MASK+1)*3,
I_ADDR = (D_MASK+1)*4,
I_INDEX1 = (D_MASK+1)*1,
I_INDEX2 = (D_MASK+1)*2,
I_INDEX3 = (D_MASK+1)*3,
I_MASK = (D_MASK+1)*7,
T_FIELD = 1<<0,
T_INDEX = 1<<1,
T_TYPE = 1<<2,
T_OFFSET = 1<<3,
T_FCONST = 1<<4,
T_SYM = 1<<5,
T_SCONST = 1<<6
};
/*
* 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 */
};