github.com/xushiwei/go@v0.0.0-20130601165731-2b9d83f45bc9/src/cmd/8l/8.out.h (about)

     1  // Inferno utils/8c/8.out.h
     2  // http://code.google.com/p/inferno-os/source/browse/utils/8c/8.out.h
     3  //
     4  //	Copyright © 1994-1999 Lucent Technologies Inc.  All rights reserved.
     5  //	Portions Copyright © 1995-1997 C H Forsyth (forsyth@terzarima.net)
     6  //	Portions Copyright © 1997-1999 Vita Nuova Limited
     7  //	Portions Copyright © 2000-2007 Vita Nuova Holdings Limited (www.vitanuova.com)
     8  //	Portions Copyright © 2004,2006 Bruce Ellis
     9  //	Portions Copyright © 2005-2007 C H Forsyth (forsyth@terzarima.net)
    10  //	Revisions Copyright © 2000-2007 Lucent Technologies Inc. and others
    11  //	Portions Copyright © 2009 The Go Authors.  All rights reserved.
    12  //
    13  // Permission is hereby granted, free of charge, to any person obtaining a copy
    14  // of this software and associated documentation files (the "Software"), to deal
    15  // in the Software without restriction, including without limitation the rights
    16  // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    17  // copies of the Software, and to permit persons to whom the Software is
    18  // furnished to do so, subject to the following conditions:
    19  //
    20  // The above copyright notice and this permission notice shall be included in
    21  // all copies or substantial portions of the Software.
    22  //
    23  // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    24  // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    25  // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
    26  // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    27  // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    28  // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
    29  // THE SOFTWARE.
    30  
    31  #define	NSYM	50
    32  #define	NSNAME	8
    33  #define NOPROF	(1<<0)
    34  #define DUPOK	(1<<1)
    35  #define NOSPLIT	(1<<2)
    36  #define RODATA	(1<<3)
    37  #define NOPTR	(1<<4)
    38  
    39  enum	as
    40  {
    41  	AXXX,
    42  	AAAA,
    43  	AAAD,
    44  	AAAM,
    45  	AAAS,
    46  	AADCB,
    47  	AADCL,
    48  	AADCW,
    49  	AADDB,
    50  	AADDL,
    51  	AADDW,
    52  	AADJSP,
    53  	AANDB,
    54  	AANDL,
    55  	AANDW,
    56  	AARPL,
    57  	ABOUNDL,
    58  	ABOUNDW,
    59  	ABSFL,
    60  	ABSFW,
    61  	ABSRL,
    62  	ABSRW,
    63  	ABTL,
    64  	ABTW,
    65  	ABTCL,
    66  	ABTCW,
    67  	ABTRL,
    68  	ABTRW,
    69  	ABTSL,
    70  	ABTSW,
    71  	ABYTE,
    72  	ACALL,
    73  	ACLC,
    74  	ACLD,
    75  	ACLI,
    76  	ACLTS,
    77  	ACMC,
    78  	ACMPB,
    79  	ACMPL,
    80  	ACMPW,
    81  	ACMPSB,
    82  	ACMPSL,
    83  	ACMPSW,
    84  	ADAA,
    85  	ADAS,
    86  	ADATA,
    87  	ADECB,
    88  	ADECL,
    89  	ADECW,
    90  	ADIVB,
    91  	ADIVL,
    92  	ADIVW,
    93  	AENTER,
    94  	AGLOBL,
    95  	AGOK,
    96  	AHISTORY,
    97  	AHLT,
    98  	AIDIVB,
    99  	AIDIVL,
   100  	AIDIVW,
   101  	AIMULB,
   102  	AIMULL,
   103  	AIMULW,
   104  	AINB,
   105  	AINL,
   106  	AINW,
   107  	AINCB,
   108  	AINCL,
   109  	AINCW,
   110  	AINSB,
   111  	AINSL,
   112  	AINSW,
   113  	AINT,
   114  	AINTO,
   115  	AIRETL,
   116  	AIRETW,
   117  	AJCC,
   118  	AJCS,
   119  	AJCXZL,
   120  	AJCXZW,
   121  	AJEQ,
   122  	AJGE,
   123  	AJGT,
   124  	AJHI,
   125  	AJLE,
   126  	AJLS,
   127  	AJLT,
   128  	AJMI,
   129  	AJMP,
   130  	AJNE,
   131  	AJOC,
   132  	AJOS,
   133  	AJPC,
   134  	AJPL,
   135  	AJPS,
   136  	ALAHF,
   137  	ALARL,
   138  	ALARW,
   139  	ALEAL,
   140  	ALEAW,
   141  	ALEAVEL,
   142  	ALEAVEW,
   143  	ALOCK,
   144  	ALODSB,
   145  	ALODSL,
   146  	ALODSW,
   147  	ALONG,
   148  	ALOOP,
   149  	ALOOPEQ,
   150  	ALOOPNE,
   151  	ALSLL,
   152  	ALSLW,
   153  	AMOVB,
   154  	AMOVL,
   155  	AMOVW,
   156  	AMOVQ,
   157  	AMOVBLSX,
   158  	AMOVBLZX,
   159  	AMOVBWSX,
   160  	AMOVBWZX,
   161  	AMOVWLSX,
   162  	AMOVWLZX,
   163  	AMOVSB,
   164  	AMOVSL,
   165  	AMOVSW,
   166  	AMULB,
   167  	AMULL,
   168  	AMULW,
   169  	ANAME,
   170  	ANEGB,
   171  	ANEGL,
   172  	ANEGW,
   173  	ANOP,
   174  	ANOTB,
   175  	ANOTL,
   176  	ANOTW,
   177  	AORB,
   178  	AORL,
   179  	AORW,
   180  	AOUTB,
   181  	AOUTL,
   182  	AOUTW,
   183  	AOUTSB,
   184  	AOUTSL,
   185  	AOUTSW,
   186  	APAUSE,
   187  	APOPAL,
   188  	APOPAW,
   189  	APOPFL,
   190  	APOPFW,
   191  	APOPL,
   192  	APOPW,
   193  	APUSHAL,
   194  	APUSHAW,
   195  	APUSHFL,
   196  	APUSHFW,
   197  	APUSHL,
   198  	APUSHW,
   199  	ARCLB,
   200  	ARCLL,
   201  	ARCLW,
   202  	ARCRB,
   203  	ARCRL,
   204  	ARCRW,
   205  	AREP,
   206  	AREPN,
   207  	ARET,
   208  	AROLB,
   209  	AROLL,
   210  	AROLW,
   211  	ARORB,
   212  	ARORL,
   213  	ARORW,
   214  	ASAHF,
   215  	ASALB,
   216  	ASALL,
   217  	ASALW,
   218  	ASARB,
   219  	ASARL,
   220  	ASARW,
   221  	ASBBB,
   222  	ASBBL,
   223  	ASBBW,
   224  	ASCASB,
   225  	ASCASL,
   226  	ASCASW,
   227  	ASETCC,
   228  	ASETCS,
   229  	ASETEQ,
   230  	ASETGE,
   231  	ASETGT,
   232  	ASETHI,
   233  	ASETLE,
   234  	ASETLS,
   235  	ASETLT,
   236  	ASETMI,
   237  	ASETNE,
   238  	ASETOC,
   239  	ASETOS,
   240  	ASETPC,
   241  	ASETPL,
   242  	ASETPS,
   243  	ACDQ,
   244  	ACWD,
   245  	ASHLB,
   246  	ASHLL,
   247  	ASHLW,
   248  	ASHRB,
   249  	ASHRL,
   250  	ASHRW,
   251  	ASTC,
   252  	ASTD,
   253  	ASTI,
   254  	ASTOSB,
   255  	ASTOSL,
   256  	ASTOSW,
   257  	ASUBB,
   258  	ASUBL,
   259  	ASUBW,
   260  	ASYSCALL,
   261  	ATESTB,
   262  	ATESTL,
   263  	ATESTW,
   264  	ATEXT,
   265  	AVERR,
   266  	AVERW,
   267  	AWAIT,
   268  	AWORD,
   269  	AXCHGB,
   270  	AXCHGL,
   271  	AXCHGW,
   272  	AXLAT,
   273  	AXORB,
   274  	AXORL,
   275  	AXORW,
   276  
   277  	AFMOVB,
   278  	AFMOVBP,
   279  	AFMOVD,
   280  	AFMOVDP,
   281  	AFMOVF,
   282  	AFMOVFP,
   283  	AFMOVL,
   284  	AFMOVLP,
   285  	AFMOVV,
   286  	AFMOVVP,
   287  	AFMOVW,
   288  	AFMOVWP,
   289  	AFMOVX,
   290  	AFMOVXP,
   291  
   292  	AFCOMB,
   293  	AFCOMBP,
   294  	AFCOMD,
   295  	AFCOMDP,
   296  	AFCOMDPP,
   297  	AFCOMF,
   298  	AFCOMFP,
   299  	AFCOMI,
   300  	AFCOMIP,
   301  	AFCOML,
   302  	AFCOMLP,
   303  	AFCOMW,
   304  	AFCOMWP,
   305  	AFUCOM,
   306  	AFUCOMI,
   307  	AFUCOMIP,
   308  	AFUCOMP,
   309  	AFUCOMPP,
   310  
   311  	AFADDDP,
   312  	AFADDW,
   313  	AFADDL,
   314  	AFADDF,
   315  	AFADDD,
   316  
   317  	AFMULDP,
   318  	AFMULW,
   319  	AFMULL,
   320  	AFMULF,
   321  	AFMULD,
   322  
   323  	AFSUBDP,
   324  	AFSUBW,
   325  	AFSUBL,
   326  	AFSUBF,
   327  	AFSUBD,
   328  
   329  	AFSUBRDP,
   330  	AFSUBRW,
   331  	AFSUBRL,
   332  	AFSUBRF,
   333  	AFSUBRD,
   334  
   335  	AFDIVDP,
   336  	AFDIVW,
   337  	AFDIVL,
   338  	AFDIVF,
   339  	AFDIVD,
   340  
   341  	AFDIVRDP,
   342  	AFDIVRW,
   343  	AFDIVRL,
   344  	AFDIVRF,
   345  	AFDIVRD,
   346  
   347  	AFXCHD,
   348  	AFFREE,
   349  
   350  	AFLDCW,
   351  	AFLDENV,
   352  	AFRSTOR,
   353  	AFSAVE,
   354  	AFSTCW,
   355  	AFSTENV,
   356  	AFSTSW,
   357  
   358  	AF2XM1,
   359  	AFABS,
   360  	AFCHS,
   361  	AFCLEX,
   362  	AFCOS,
   363  	AFDECSTP,
   364  	AFINCSTP,
   365  	AFINIT,
   366  	AFLD1,
   367  	AFLDL2E,
   368  	AFLDL2T,
   369  	AFLDLG2,
   370  	AFLDLN2,
   371  	AFLDPI,
   372  	AFLDZ,
   373  	AFNOP,
   374  	AFPATAN,
   375  	AFPREM,
   376  	AFPREM1,
   377  	AFPTAN,
   378  	AFRNDINT,
   379  	AFSCALE,
   380  	AFSIN,
   381  	AFSINCOS,
   382  	AFSQRT,
   383  	AFTST,
   384  	AFXAM,
   385  	AFXTRACT,
   386  	AFYL2X,
   387  	AFYL2XP1,
   388  
   389  	AEND,
   390  
   391  	ADYNT_,
   392  	AINIT_,
   393  
   394  	ASIGNAME,
   395  
   396  	ACMPXCHGB,
   397  	ACMPXCHGL,
   398  	ACMPXCHGW,
   399  	ACMPXCHG8B,
   400  
   401  	ACPUID,
   402  	ARDTSC,
   403  
   404  	AXADDB,
   405  	AXADDL,
   406  	AXADDW,
   407  
   408  	/* conditional move */
   409  	ACMOVLCC,
   410  	ACMOVLCS,
   411  	ACMOVLEQ,
   412  	ACMOVLGE,
   413  	ACMOVLGT,
   414  	ACMOVLHI,
   415  	ACMOVLLE,
   416  	ACMOVLLS,
   417  	ACMOVLLT,
   418  	ACMOVLMI,
   419  	ACMOVLNE,
   420  	ACMOVLOC,
   421  	ACMOVLOS,
   422  	ACMOVLPC,
   423  	ACMOVLPL,
   424  	ACMOVLPS,
   425  	ACMOVWCC,
   426  	ACMOVWCS,
   427  	ACMOVWEQ,
   428  	ACMOVWGE,
   429  	ACMOVWGT,
   430  	ACMOVWHI,
   431  	ACMOVWLE,
   432  	ACMOVWLS,
   433  	ACMOVWLT,
   434  	ACMOVWMI,
   435  	ACMOVWNE,
   436  	ACMOVWOC,
   437  	ACMOVWOS,
   438  	ACMOVWPC,
   439  	ACMOVWPL,
   440  	ACMOVWPS,
   441  
   442  	AFCMOVCC,
   443  	AFCMOVCS,
   444  	AFCMOVEQ,
   445  	AFCMOVHI,
   446  	AFCMOVLS,
   447  	AFCMOVNE,
   448  	AFCMOVNU,
   449  	AFCMOVUN,
   450  
   451  	ALFENCE,
   452  	AMFENCE,
   453  	ASFENCE,
   454  
   455  	AEMMS,
   456  	
   457  	APREFETCHT0,
   458  	APREFETCHT1,
   459  	APREFETCHT2,
   460  	APREFETCHNTA,
   461  	
   462  	ABSWAPL,
   463  	
   464  	AUNDEF,
   465  
   466  	// SSE2
   467  	AADDPD,
   468  	AADDPS,
   469  	AADDSD,
   470  	AADDSS,
   471  	AANDNPD,
   472  	AANDNPS,
   473  	AANDPD,
   474  	AANDPS,
   475  	ACMPPD,
   476  	ACMPPS,
   477  	ACMPSD,
   478  	ACMPSS,
   479  	ACOMISD,
   480  	ACOMISS,
   481  	ACVTPL2PD,
   482  	ACVTPL2PS,
   483  	ACVTPD2PL,
   484  	ACVTPD2PS,
   485  	ACVTPS2PL,
   486  	ACVTPS2PD,
   487  	ACVTSD2SL,
   488  	ACVTSD2SS,
   489  	ACVTSL2SD,
   490  	ACVTSL2SS,
   491  	ACVTSS2SD,
   492  	ACVTSS2SL,
   493  	ACVTTPD2PL,
   494  	ACVTTPS2PL,
   495  	ACVTTSD2SL,
   496  	ACVTTSS2SL,
   497  	ADIVPD,
   498  	ADIVPS,
   499  	ADIVSD,
   500  	ADIVSS,
   501  	AMASKMOVOU,
   502  	AMAXPD,
   503  	AMAXPS,
   504  	AMAXSD,
   505  	AMAXSS,
   506  	AMINPD,
   507  	AMINPS,
   508  	AMINSD,
   509  	AMINSS,
   510  	AMOVAPD,
   511  	AMOVAPS,
   512  	AMOVO,
   513  	AMOVOU,
   514  	AMOVHLPS,
   515  	AMOVHPD,
   516  	AMOVHPS,
   517  	AMOVLHPS,
   518  	AMOVLPD,
   519  	AMOVLPS,
   520  	AMOVMSKPD,
   521  	AMOVMSKPS,
   522  	AMOVNTO,
   523  	AMOVNTPD,
   524  	AMOVNTPS,
   525  	AMOVSD,
   526  	AMOVSS,
   527  	AMOVUPD,
   528  	AMOVUPS,
   529  	AMULPD,
   530  	AMULPS,
   531  	AMULSD,
   532  	AMULSS,
   533  	AORPD,
   534  	AORPS,
   535  	APADDQ,
   536  	APAND,
   537  	APCMPEQB,
   538  	APMAXSW,
   539  	APMAXUB,
   540  	APMINSW,
   541  	APMINUB,
   542  	APMOVMSKB,
   543  	APSADBW,
   544  	APSUBB,
   545  	APSUBL,
   546  	APSUBQ,
   547  	APSUBSB,
   548  	APSUBSW,
   549  	APSUBUSB,
   550  	APSUBUSW,
   551  	APSUBW,
   552  	APUNPCKHQDQ,
   553  	APUNPCKLQDQ,
   554  	ARCPPS,
   555  	ARCPSS,
   556  	ARSQRTPS,
   557  	ARSQRTSS,
   558  	ASQRTPD,
   559  	ASQRTPS,
   560  	ASQRTSD,
   561  	ASQRTSS,
   562  	ASUBPD,
   563  	ASUBPS,
   564  	ASUBSD,
   565  	ASUBSS,
   566  	AUCOMISD,
   567  	AUCOMISS,
   568  	AUNPCKHPD,
   569  	AUNPCKHPS,
   570  	AUNPCKLPD,
   571  	AUNPCKLPS,
   572  	AXORPD,
   573  	AXORPS,
   574  
   575  	/* SSE 3+ */
   576  	AAESENC,
   577  	APINSRD,
   578  	APSHUFB,
   579  
   580  	AUSEFIELD,
   581  	ALOCALS,
   582  	ATYPE,
   583  
   584  	ALAST
   585  };
   586  
   587  enum
   588  {
   589  	D_AL		= 0,
   590  	D_CL,
   591  	D_DL,
   592  	D_BL,
   593  
   594  	D_AH		= 4,
   595  	D_CH,
   596  	D_DH,
   597  	D_BH,
   598  
   599  	D_AX		= 8,
   600  	D_CX,
   601  	D_DX,
   602  	D_BX,
   603  	D_SP,
   604  	D_BP,
   605  	D_SI,
   606  	D_DI,
   607  
   608  	D_F0		= 16,
   609  	D_F7		= D_F0 + 7,
   610  
   611  	D_CS		= 24,
   612  	D_SS,
   613  	D_DS,
   614  	D_ES,
   615  	D_FS,
   616  	D_GS,
   617  
   618  	D_GDTR,		/* global descriptor table register */
   619  	D_IDTR,		/* interrupt descriptor table register */
   620  	D_LDTR,		/* local descriptor table register */
   621  	D_MSW,		/* machine status word */
   622  	D_TASK,		/* task register */
   623  
   624  	D_CR		= 35,
   625  	D_DR		= 43,
   626  	D_TR		= 51,
   627  
   628  	D_X0		= 59,
   629  	D_X1,
   630  	D_X2,
   631  	D_X3,
   632  	D_X4,
   633  	D_X5,
   634  	D_X6,
   635  	D_X7,
   636  
   637  	D_NONE		= 67,
   638  
   639  	D_BRANCH	= 68,
   640  	D_EXTERN	= 69,
   641  	D_STATIC	= 70,
   642  	D_AUTO		= 71,
   643  	D_PARAM		= 72,
   644  	D_CONST		= 73,
   645  	D_FCONST	= 74,
   646  	D_SCONST	= 75,
   647  	D_ADDR		= 76,
   648  
   649  	D_FILE,
   650  	D_FILE1,
   651  
   652  	D_INDIR,	/* additive */
   653  
   654  	D_CONST2 = D_INDIR+D_INDIR,
   655  	D_SIZE,	/* 8l internal */
   656  	D_PCREL,
   657  	D_GOTOFF,
   658  	D_GOTREL,
   659  	D_TLS,
   660  
   661  	T_TYPE		= 1<<0,
   662  	T_INDEX		= 1<<1,
   663  	T_OFFSET	= 1<<2,
   664  	T_FCONST	= 1<<3,
   665  	T_SYM		= 1<<4,
   666  	T_SCONST	= 1<<5,
   667  	T_OFFSET2	= 1<<6,
   668  	T_GOTYPE	= 1<<7,
   669  
   670  	REGARG		= -1,
   671  	REGRET		= D_AX,
   672  	FREGRET		= D_F0,
   673  	REGSP		= D_SP,
   674  	REGTMP		= D_DI,
   675  };
   676  
   677  /*
   678   * this is the ranlib header
   679   */
   680  #define	SYMDEF	"__.GOSYMDEF"
   681  
   682  /*
   683   * this is the simulated IEEE floating point
   684   */
   685  typedef	struct	ieee	Ieee;
   686  struct	ieee
   687  {
   688  	int32	l;	/* contains ls-man	0xffffffff */
   689  	int32	h;	/* contains sign	0x80000000
   690  				    exp		0x7ff00000
   691  				    ms-man	0x000fffff */
   692  };