| // Inferno utils/8c/8.out.h |
| // http://code.google.com/p/inferno-os/source/browse/utils/8c/8.out.h |
| // |
| // Copyright © 1994-1999 Lucent Technologies Inc. All rights reserved. |
| // Portions Copyright © 1995-1997 C H Forsyth (forsyth@terzarima.net) |
| // Portions Copyright © 1997-1999 Vita Nuova Limited |
| // Portions Copyright © 2000-2007 Vita Nuova Holdings Limited (www.vitanuova.com) |
| // Portions Copyright © 2004,2006 Bruce Ellis |
| // Portions Copyright © 2005-2007 C H Forsyth (forsyth@terzarima.net) |
| // Revisions Copyright © 2000-2007 Lucent Technologies Inc. and others |
| // Portions Copyright © 2009 The Go Authors. All rights reserved. |
| // |
| // Permission is hereby granted, free of charge, to any person obtaining a copy |
| // of this software and associated documentation files (the "Software"), to deal |
| // in the Software without restriction, including without limitation the rights |
| // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
| // copies of the Software, and to permit persons to whom the Software is |
| // furnished to do so, subject to the following conditions: |
| // |
| // The above copyright notice and this permission notice shall be included in |
| // all copies or substantial portions of the Software. |
| // |
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
| // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
| // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
| // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
| // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN |
| // THE SOFTWARE. |
| |
| #define NSYM 50 |
| #define NSNAME 8 |
| #define NOPROF (1<<0) |
| #define DUPOK (1<<1) |
| #define NOSPLIT (1<<2) |
| #define RODATA (1<<3) |
| |
| enum as |
| { |
| AXXX, |
| AAAA, |
| AAAD, |
| AAAM, |
| AAAS, |
| AADCB, |
| AADCL, |
| AADCW, |
| AADDB, |
| AADDL, |
| AADDW, |
| AADJSP, |
| AANDB, |
| AANDL, |
| AANDW, |
| AARPL, |
| ABOUNDL, |
| ABOUNDW, |
| ABSFL, |
| ABSFW, |
| ABSRL, |
| ABSRW, |
| ABTL, |
| ABTW, |
| ABTCL, |
| ABTCW, |
| ABTRL, |
| ABTRW, |
| ABTSL, |
| ABTSW, |
| ABYTE, |
| ACALL, |
| ACLC, |
| ACLD, |
| ACLI, |
| ACLTS, |
| ACMC, |
| ACMPB, |
| ACMPL, |
| ACMPW, |
| ACMPSB, |
| ACMPSL, |
| ACMPSW, |
| ADAA, |
| ADAS, |
| ADATA, |
| ADECB, |
| ADECL, |
| ADECW, |
| ADIVB, |
| ADIVL, |
| ADIVW, |
| AENTER, |
| AGLOBL, |
| AGOK, |
| AHISTORY, |
| AHLT, |
| AIDIVB, |
| AIDIVL, |
| AIDIVW, |
| AIMULB, |
| AIMULL, |
| AIMULW, |
| AINB, |
| AINL, |
| AINW, |
| AINCB, |
| AINCL, |
| AINCW, |
| AINSB, |
| AINSL, |
| AINSW, |
| AINT, |
| AINTO, |
| AIRETL, |
| AIRETW, |
| AJCC, |
| AJCS, |
| AJCXZ, |
| AJEQ, |
| AJGE, |
| AJGT, |
| AJHI, |
| AJLE, |
| AJLS, |
| AJLT, |
| AJMI, |
| AJMP, |
| AJNE, |
| AJOC, |
| AJOS, |
| AJPC, |
| AJPL, |
| AJPS, |
| ALAHF, |
| ALARL, |
| ALARW, |
| ALEAL, |
| ALEAW, |
| ALEAVEL, |
| ALEAVEW, |
| ALOCK, |
| ALODSB, |
| ALODSL, |
| ALODSW, |
| ALONG, |
| ALOOP, |
| ALOOPEQ, |
| ALOOPNE, |
| ALSLL, |
| ALSLW, |
| AMOVB, |
| AMOVL, |
| AMOVW, |
| AMOVBLSX, |
| AMOVBLZX, |
| AMOVBWSX, |
| AMOVBWZX, |
| AMOVWLSX, |
| AMOVWLZX, |
| AMOVSB, |
| AMOVSL, |
| AMOVSW, |
| AMULB, |
| AMULL, |
| AMULW, |
| ANAME, |
| ANEGB, |
| ANEGL, |
| ANEGW, |
| ANOP, |
| ANOTB, |
| ANOTL, |
| ANOTW, |
| AORB, |
| AORL, |
| AORW, |
| AOUTB, |
| AOUTL, |
| AOUTW, |
| AOUTSB, |
| AOUTSL, |
| AOUTSW, |
| APOPAL, |
| APOPAW, |
| APOPFL, |
| APOPFW, |
| APOPL, |
| APOPW, |
| APUSHAL, |
| APUSHAW, |
| APUSHFL, |
| APUSHFW, |
| APUSHL, |
| APUSHW, |
| ARCLB, |
| ARCLL, |
| ARCLW, |
| ARCRB, |
| ARCRL, |
| ARCRW, |
| AREP, |
| AREPN, |
| ARET, |
| AROLB, |
| AROLL, |
| AROLW, |
| ARORB, |
| ARORL, |
| ARORW, |
| ASAHF, |
| ASALB, |
| ASALL, |
| ASALW, |
| ASARB, |
| ASARL, |
| ASARW, |
| ASBBB, |
| ASBBL, |
| ASBBW, |
| ASCASB, |
| ASCASL, |
| ASCASW, |
| ASETCC, |
| ASETCS, |
| ASETEQ, |
| ASETGE, |
| ASETGT, |
| ASETHI, |
| ASETLE, |
| ASETLS, |
| ASETLT, |
| ASETMI, |
| ASETNE, |
| ASETOC, |
| ASETOS, |
| ASETPC, |
| ASETPL, |
| ASETPS, |
| ACDQ, |
| ACWD, |
| ASHLB, |
| ASHLL, |
| ASHLW, |
| ASHRB, |
| ASHRL, |
| ASHRW, |
| ASTC, |
| ASTD, |
| ASTI, |
| ASTOSB, |
| ASTOSL, |
| ASTOSW, |
| ASUBB, |
| ASUBL, |
| ASUBW, |
| ASYSCALL, |
| ATESTB, |
| ATESTL, |
| ATESTW, |
| ATEXT, |
| AVERR, |
| AVERW, |
| AWAIT, |
| AWORD, |
| AXCHGB, |
| AXCHGL, |
| AXCHGW, |
| AXLAT, |
| AXORB, |
| AXORL, |
| AXORW, |
| |
| AFMOVB, |
| AFMOVBP, |
| AFMOVD, |
| AFMOVDP, |
| AFMOVF, |
| AFMOVFP, |
| AFMOVL, |
| AFMOVLP, |
| AFMOVV, |
| AFMOVVP, |
| AFMOVW, |
| AFMOVWP, |
| AFMOVX, |
| AFMOVXP, |
| |
| AFCOMB, |
| AFCOMBP, |
| AFCOMD, |
| AFCOMDP, |
| AFCOMDPP, |
| AFCOMF, |
| AFCOMFP, |
| AFCOMI, |
| AFCOMIP, |
| AFCOML, |
| AFCOMLP, |
| AFCOMW, |
| AFCOMWP, |
| AFUCOM, |
| AFUCOMI, |
| AFUCOMIP, |
| AFUCOMP, |
| AFUCOMPP, |
| |
| AFADDDP, |
| AFADDW, |
| AFADDL, |
| AFADDF, |
| AFADDD, |
| |
| AFMULDP, |
| AFMULW, |
| AFMULL, |
| AFMULF, |
| AFMULD, |
| |
| AFSUBDP, |
| AFSUBW, |
| AFSUBL, |
| AFSUBF, |
| AFSUBD, |
| |
| AFSUBRDP, |
| AFSUBRW, |
| AFSUBRL, |
| AFSUBRF, |
| AFSUBRD, |
| |
| AFDIVDP, |
| AFDIVW, |
| AFDIVL, |
| AFDIVF, |
| AFDIVD, |
| |
| AFDIVRDP, |
| AFDIVRW, |
| AFDIVRL, |
| AFDIVRF, |
| AFDIVRD, |
| |
| AFXCHD, |
| AFFREE, |
| |
| AFLDCW, |
| AFLDENV, |
| AFRSTOR, |
| AFSAVE, |
| AFSTCW, |
| AFSTENV, |
| AFSTSW, |
| |
| AF2XM1, |
| AFABS, |
| AFCHS, |
| AFCLEX, |
| AFCOS, |
| AFDECSTP, |
| AFINCSTP, |
| AFINIT, |
| AFLD1, |
| AFLDL2E, |
| AFLDL2T, |
| AFLDLG2, |
| AFLDLN2, |
| AFLDPI, |
| AFLDZ, |
| AFNOP, |
| AFPATAN, |
| AFPREM, |
| AFPREM1, |
| AFPTAN, |
| AFRNDINT, |
| AFSCALE, |
| AFSIN, |
| AFSINCOS, |
| AFSQRT, |
| AFTST, |
| AFXAM, |
| AFXTRACT, |
| AFYL2X, |
| AFYL2XP1, |
| |
| AEND, |
| |
| ADYNT_, |
| AINIT_, |
| |
| ASIGNAME, |
| |
| ACMPXCHGB, |
| ACMPXCHGL, |
| ACMPXCHGW, |
| ACMPXCHG8B, |
| |
| AXADDB, |
| AXADDL, |
| AXADDW, |
| |
| /* conditional move */ |
| ACMOVLCC, |
| ACMOVLCS, |
| ACMOVLEQ, |
| ACMOVLGE, |
| ACMOVLGT, |
| ACMOVLHI, |
| ACMOVLLE, |
| ACMOVLLS, |
| ACMOVLLT, |
| ACMOVLMI, |
| ACMOVLNE, |
| ACMOVLOC, |
| ACMOVLOS, |
| ACMOVLPC, |
| ACMOVLPL, |
| ACMOVLPS, |
| ACMOVWCC, |
| ACMOVWCS, |
| ACMOVWEQ, |
| ACMOVWGE, |
| ACMOVWGT, |
| ACMOVWHI, |
| ACMOVWLE, |
| ACMOVWLS, |
| ACMOVWLT, |
| ACMOVWMI, |
| ACMOVWNE, |
| ACMOVWOC, |
| ACMOVWOS, |
| ACMOVWPC, |
| ACMOVWPL, |
| ACMOVWPS, |
| |
| AFCMOVCC, |
| AFCMOVCS, |
| AFCMOVEQ, |
| AFCMOVHI, |
| AFCMOVLS, |
| AFCMOVNE, |
| AFCMOVNU, |
| AFCMOVUN, |
| |
| ALAST |
| }; |
| |
| enum |
| { |
| D_AL = 0, |
| D_CL, |
| D_DL, |
| D_BL, |
| |
| D_AH = 4, |
| D_CH, |
| D_DH, |
| D_BH, |
| |
| D_AX = 8, |
| D_CX, |
| D_DX, |
| D_BX, |
| D_SP, |
| D_BP, |
| D_SI, |
| D_DI, |
| |
| D_F0 = 16, |
| D_F7 = D_F0 + 7, |
| |
| D_CS = 24, |
| D_SS, |
| D_DS, |
| D_ES, |
| D_FS, |
| D_GS, |
| |
| D_GDTR, /* global descriptor table register */ |
| D_IDTR, /* interrupt descriptor table register */ |
| D_LDTR, /* local descriptor table register */ |
| D_MSW, /* machine status word */ |
| D_TASK, /* task register */ |
| |
| D_CR = 35, |
| D_DR = 43, |
| D_TR = 51, |
| |
| D_NONE = 59, |
| |
| D_BRANCH = 60, |
| D_EXTERN = 61, |
| D_STATIC = 62, |
| D_AUTO = 63, |
| D_PARAM = 64, |
| D_CONST = 65, |
| D_FCONST = 66, |
| D_SCONST = 67, |
| D_ADDR = 68, |
| |
| D_FILE, |
| D_FILE1, |
| |
| D_INDIR, /* additive */ |
| |
| D_CONST2 = D_INDIR+D_INDIR, |
| D_SIZE, /* 8l internal */ |
| D_PCREL, |
| D_GOTOFF, |
| D_GOTREL, |
| |
| T_TYPE = 1<<0, |
| T_INDEX = 1<<1, |
| T_OFFSET = 1<<2, |
| T_FCONST = 1<<3, |
| T_SYM = 1<<4, |
| T_SCONST = 1<<5, |
| T_OFFSET2 = 1<<6, |
| T_GOTYPE = 1<<7, |
| |
| REGARG = -1, |
| REGRET = D_AX, |
| FREGRET = D_F0, |
| REGSP = D_SP, |
| REGTMP = D_DI, |
| }; |
| |
| /* |
| * this is the ranlib header |
| */ |
| #define SYMDEF "__.SYMDEF" |
| |
| /* |
| * this is the simulated IEEE floating point |
| */ |
| typedef struct ieee Ieee; |
| struct ieee |
| { |
| int32 l; /* contains ls-man 0xffffffff */ |
| int32 h; /* contains sign 0x80000000 |
| exp 0x7ff00000 |
| ms-man 0x000fffff */ |
| }; |