| // Inferno utils/6c/6.out.h | |
| // http://code.google.com/p/inferno-os/source/browse/utils/6c/6.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) | |
| /* | |
| * amd64 | |
| */ | |
| 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, | |
| ADECQ, | |
| ADECW, | |
| ADIVB, | |
| ADIVL, | |
| ADIVW, | |
| AENTER, | |
| AGLOBL, | |
| AGOK, | |
| AHISTORY, | |
| AHLT, | |
| AIDIVB, | |
| AIDIVL, | |
| AIDIVW, | |
| AIMULB, | |
| AIMULL, | |
| AIMULW, | |
| AINB, | |
| AINL, | |
| AINW, | |
| AINCB, | |
| AINCL, | |
| AINCQ, | |
| 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, | |
| AMOVBQSX, | |
| AMOVBQZX, | |
| AMOVBWSX, | |
| AMOVBWZX, | |
| AMOVWLSX, | |
| AMOVWLZX, | |
| AMOVWQSX, | |
| AMOVWQZX, | |
| 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, | |
| AFCOML, | |
| AFCOMLP, | |
| AFCOMW, | |
| AFCOMWP, | |
| AFUCOM, | |
| 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, | |
| /* extra 32-bit operations */ | |
| ACMPXCHGB, | |
| ACMPXCHGL, | |
| ACMPXCHGW, | |
| ACMPXCHG8B, | |
| ACPUID, | |
| AINVD, | |
| AINVLPG, | |
| ALFENCE, | |
| AMFENCE, | |
| AMOVNTIL, | |
| ARDMSR, | |
| ARDPMC, | |
| ARDTSC, | |
| ARSM, | |
| ASFENCE, | |
| ASYSRET, | |
| AWBINVD, | |
| AWRMSR, | |
| AXADDB, | |
| AXADDL, | |
| AXADDW, | |
| /* conditional move */ | |
| ACMOVLCC, | |
| ACMOVLCS, | |
| ACMOVLEQ, | |
| ACMOVLGE, | |
| ACMOVLGT, | |
| ACMOVLHI, | |
| ACMOVLLE, | |
| ACMOVLLS, | |
| ACMOVLLT, | |
| ACMOVLMI, | |
| ACMOVLNE, | |
| ACMOVLOC, | |
| ACMOVLOS, | |
| ACMOVLPC, | |
| ACMOVLPL, | |
| ACMOVLPS, | |
| ACMOVQCC, | |
| ACMOVQCS, | |
| ACMOVQEQ, | |
| ACMOVQGE, | |
| ACMOVQGT, | |
| ACMOVQHI, | |
| ACMOVQLE, | |
| ACMOVQLS, | |
| ACMOVQLT, | |
| ACMOVQMI, | |
| ACMOVQNE, | |
| ACMOVQOC, | |
| ACMOVQOS, | |
| ACMOVQPC, | |
| ACMOVQPL, | |
| ACMOVQPS, | |
| ACMOVWCC, | |
| ACMOVWCS, | |
| ACMOVWEQ, | |
| ACMOVWGE, | |
| ACMOVWGT, | |
| ACMOVWHI, | |
| ACMOVWLE, | |
| ACMOVWLS, | |
| ACMOVWLT, | |
| ACMOVWMI, | |
| ACMOVWNE, | |
| ACMOVWOC, | |
| ACMOVWOS, | |
| ACMOVWPC, | |
| ACMOVWPL, | |
| ACMOVWPS, | |
| /* 64-bit */ | |
| AADCQ, | |
| AADDQ, | |
| AANDQ, | |
| ABSFQ, | |
| ABSRQ, | |
| ABTCQ, | |
| ABTQ, | |
| ABTRQ, | |
| ABTSQ, | |
| ACMPQ, | |
| ACMPSQ, | |
| ACMPXCHGQ, | |
| ACQO, | |
| ADIVQ, | |
| AIDIVQ, | |
| AIMULQ, | |
| AIRETQ, | |
| ALEAQ, | |
| ALEAVEQ, | |
| ALODSQ, | |
| AMOVQ, | |
| AMOVLQSX, | |
| AMOVLQZX, | |
| AMOVNTIQ, | |
| AMOVSQ, | |
| AMULQ, | |
| ANEGQ, | |
| ANOTQ, | |
| AORQ, | |
| APOPFQ, | |
| APOPQ, | |
| APUSHFQ, | |
| APUSHQ, | |
| ARCLQ, | |
| ARCRQ, | |
| AROLQ, | |
| ARORQ, | |
| AQUAD, | |
| ASALQ, | |
| ASARQ, | |
| ASBBQ, | |
| ASCASQ, | |
| ASHLQ, | |
| ASHRQ, | |
| ASTOSQ, | |
| ASUBQ, | |
| ATESTQ, | |
| AXADDQ, | |
| AXCHGQ, | |
| AXORQ, | |
| /* media */ | |
| AADDPD, | |
| AADDPS, | |
| AADDSD, | |
| AADDSS, | |
| AANDNPD, | |
| AANDNPS, | |
| AANDPD, | |
| AANDPS, | |
| ACMPPD, | |
| ACMPPS, | |
| ACMPSD, | |
| ACMPSS, | |
| ACOMISD, | |
| ACOMISS, | |
| ACVTPD2PL, | |
| ACVTPD2PS, | |
| ACVTPL2PD, | |
| ACVTPL2PS, | |
| ACVTPS2PD, | |
| ACVTPS2PL, | |
| ACVTSD2SL, | |
| ACVTSD2SQ, | |
| ACVTSD2SS, | |
| ACVTSL2SD, | |
| ACVTSL2SS, | |
| ACVTSQ2SD, | |
| ACVTSQ2SS, | |
| ACVTSS2SD, | |
| ACVTSS2SL, | |
| ACVTSS2SQ, | |
| ACVTTPD2PL, | |
| ACVTTPS2PL, | |
| ACVTTSD2SL, | |
| ACVTTSD2SQ, | |
| ACVTTSS2SL, | |
| ACVTTSS2SQ, | |
| ADIVPD, | |
| ADIVPS, | |
| ADIVSD, | |
| ADIVSS, | |
| AEMMS, | |
| AFXRSTOR, | |
| AFXRSTOR64, | |
| AFXSAVE, | |
| AFXSAVE64, | |
| ALDMXCSR, | |
| AMASKMOVOU, | |
| AMASKMOVQ, | |
| AMAXPD, | |
| AMAXPS, | |
| AMAXSD, | |
| AMAXSS, | |
| AMINPD, | |
| AMINPS, | |
| AMINSD, | |
| AMINSS, | |
| AMOVAPD, | |
| AMOVAPS, | |
| AMOVOU, | |
| AMOVHLPS, | |
| AMOVHPD, | |
| AMOVHPS, | |
| AMOVLHPS, | |
| AMOVLPD, | |
| AMOVLPS, | |
| AMOVMSKPD, | |
| AMOVMSKPS, | |
| AMOVNTO, | |
| AMOVNTPD, | |
| AMOVNTPS, | |
| AMOVNTQ, | |
| AMOVO, | |
| AMOVQOZX, | |
| AMOVSD, | |
| AMOVSS, | |
| AMOVUPD, | |
| AMOVUPS, | |
| AMULPD, | |
| AMULPS, | |
| AMULSD, | |
| AMULSS, | |
| AORPD, | |
| AORPS, | |
| APACKSSLW, | |
| APACKSSWB, | |
| APACKUSWB, | |
| APADDB, | |
| APADDL, | |
| APADDQ, | |
| APADDSB, | |
| APADDSW, | |
| APADDUSB, | |
| APADDUSW, | |
| APADDW, | |
| APANDB, | |
| APANDL, | |
| APANDSB, | |
| APANDSW, | |
| APANDUSB, | |
| APANDUSW, | |
| APANDW, | |
| APAND, | |
| APANDN, | |
| APAVGB, | |
| APAVGW, | |
| APCMPEQB, | |
| APCMPEQL, | |
| APCMPEQW, | |
| APCMPGTB, | |
| APCMPGTL, | |
| APCMPGTW, | |
| APEXTRW, | |
| APFACC, | |
| APFADD, | |
| APFCMPEQ, | |
| APFCMPGE, | |
| APFCMPGT, | |
| APFMAX, | |
| APFMIN, | |
| APFMUL, | |
| APFNACC, | |
| APFPNACC, | |
| APFRCP, | |
| APFRCPIT1, | |
| APFRCPI2T, | |
| APFRSQIT1, | |
| APFRSQRT, | |
| APFSUB, | |
| APFSUBR, | |
| APINSRW, | |
| APMADDWL, | |
| APMAXSW, | |
| APMAXUB, | |
| APMINSW, | |
| APMINUB, | |
| APMOVMSKB, | |
| APMULHRW, | |
| APMULHUW, | |
| APMULHW, | |
| APMULLW, | |
| APMULULQ, | |
| APOR, | |
| APSADBW, | |
| APSHUFHW, | |
| APSHUFL, | |
| APSHUFLW, | |
| APSHUFW, | |
| APSLLO, | |
| APSLLL, | |
| APSLLQ, | |
| APSLLW, | |
| APSRAL, | |
| APSRAW, | |
| APSRLO, | |
| APSRLL, | |
| APSRLQ, | |
| APSRLW, | |
| APSUBB, | |
| APSUBL, | |
| APSUBQ, | |
| APSUBSB, | |
| APSUBSW, | |
| APSUBUSB, | |
| APSUBUSW, | |
| APSUBW, | |
| APSWAPL, | |
| APUNPCKHBW, | |
| APUNPCKHLQ, | |
| APUNPCKHQDQ, | |
| APUNPCKHWL, | |
| APUNPCKLBW, | |
| APUNPCKLLQ, | |
| APUNPCKLQDQ, | |
| APUNPCKLWL, | |
| APXOR, | |
| ARCPPS, | |
| ARCPSS, | |
| ARSQRTPS, | |
| ARSQRTSS, | |
| ASHUFPD, | |
| ASHUFPS, | |
| ASQRTPD, | |
| ASQRTPS, | |
| ASQRTSD, | |
| ASQRTSS, | |
| ASTMXCSR, | |
| ASUBPD, | |
| ASUBPS, | |
| ASUBSD, | |
| ASUBSS, | |
| AUCOMISD, | |
| AUCOMISS, | |
| AUNPCKHPD, | |
| AUNPCKHPS, | |
| AUNPCKLPD, | |
| AUNPCKLPS, | |
| AXORPD, | |
| AXORPS, | |
| APF2IW, | |
| APF2IL, | |
| API2FW, | |
| API2FL, | |
| ARETFW, | |
| ARETFL, | |
| ARETFQ, | |
| ASWAPGS, | |
| AMODE, | |
| ALAST | |
| }; | |
| enum | |
| { | |
| D_AL = 0, | |
| D_CL, | |
| D_DL, | |
| D_BL, | |
| D_SPB, | |
| D_BPB, | |
| D_SIB, | |
| D_DIB, | |
| D_R8B, | |
| D_R9B, | |
| D_R10B, | |
| D_R11B, | |
| D_R12B, | |
| D_R13B, | |
| D_R14B, | |
| D_R15B, | |
| D_AX = 16, | |
| D_CX, | |
| D_DX, | |
| D_BX, | |
| D_SP, | |
| D_BP, | |
| D_SI, | |
| D_DI, | |
| D_R8, | |
| D_R9, | |
| D_R10, | |
| D_R11, | |
| D_R12, | |
| D_R13, | |
| D_R14, | |
| D_R15, | |
| D_AH = 32, | |
| D_CH, | |
| D_DH, | |
| D_BH, | |
| D_F0 = 36, | |
| D_M0 = 44, | |
| D_X0 = 52, | |
| D_X1, | |
| D_X2, | |
| D_X3, | |
| D_X4, | |
| D_X5, | |
| D_X6, | |
| D_X7, | |
| D_CS = 68, | |
| 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 = 79, | |
| D_DR = 95, | |
| D_TR = 103, | |
| D_NONE = 111, | |
| D_BRANCH = 112, | |
| D_EXTERN = 113, | |
| D_STATIC = 114, | |
| D_AUTO = 115, | |
| D_PARAM = 116, | |
| D_CONST = 117, | |
| D_FCONST = 118, | |
| D_SCONST = 119, | |
| D_ADDR = 120, | |
| D_FILE, | |
| D_FILE1, | |
| D_INDIR, /* additive */ | |
| D_SIZE = D_INDIR + D_INDIR, /* 6l internal */ | |
| D_PCREL, | |
| 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_64 = 1<<6, | |
| T_GOTYPE = 1<<7, | |
| REGARG = -1, | |
| REGRET = D_AX, | |
| FREGRET = D_X0, | |
| REGSP = D_SP, | |
| REGTMP = D_DI, | |
| REGEXT = D_R15, /* compiler allocates external registers R15 down */ | |
| FREGMIN = D_X0+5, /* first register variable */ | |
| FREGEXT = D_X0+15 /* first external register */ | |
| }; | |
| /* | |
| * 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 */ | |
| }; |