The Go Programming Language

Text file src/cmd/6l/6.out.h

     1	// Inferno utils/6c/6.out.h
     2	// http://code.google.com/p/inferno-os/source/browse/utils/6c/6.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	
    38	/*
    39	 *	amd64
    40	 */
    41	
    42	enum	as
    43	{
    44		AXXX,
    45		AAAA,
    46		AAAD,
    47		AAAM,
    48		AAAS,
    49		AADCB,
    50		AADCL,
    51		AADCW,
    52		AADDB,
    53		AADDL,
    54		AADDW,
    55		AADJSP,
    56		AANDB,
    57		AANDL,
    58		AANDW,
    59		AARPL,
    60		ABOUNDL,
    61		ABOUNDW,
    62		ABSFL,
    63		ABSFW,
    64		ABSRL,
    65		ABSRW,
    66		ABTL,
    67		ABTW,
    68		ABTCL,
    69		ABTCW,
    70		ABTRL,
    71		ABTRW,
    72		ABTSL,
    73		ABTSW,
    74		ABYTE,
    75		ACALL,
    76		ACLC,
    77		ACLD,
    78		ACLI,
    79		ACLTS,
    80		ACMC,
    81		ACMPB,
    82		ACMPL,
    83		ACMPW,
    84		ACMPSB,
    85		ACMPSL,
    86		ACMPSW,
    87		ADAA,
    88		ADAS,
    89		ADATA,
    90		ADECB,
    91		ADECL,
    92		ADECQ,
    93		ADECW,
    94		ADIVB,
    95		ADIVL,
    96		ADIVW,
    97		AENTER,
    98		AGLOBL,
    99		AGOK,
   100		AHISTORY,
   101		AHLT,
   102		AIDIVB,
   103		AIDIVL,
   104		AIDIVW,
   105		AIMULB,
   106		AIMULL,
   107		AIMULW,
   108		AINB,
   109		AINL,
   110		AINW,
   111		AINCB,
   112		AINCL,
   113		AINCQ,
   114		AINCW,
   115		AINSB,
   116		AINSL,
   117		AINSW,
   118		AINT,
   119		AINTO,
   120		AIRETL,
   121		AIRETW,
   122		AJCC,
   123		AJCS,
   124		AJCXZ,
   125		AJEQ,
   126		AJGE,
   127		AJGT,
   128		AJHI,
   129		AJLE,
   130		AJLS,
   131		AJLT,
   132		AJMI,
   133		AJMP,
   134		AJNE,
   135		AJOC,
   136		AJOS,
   137		AJPC,
   138		AJPL,
   139		AJPS,
   140		ALAHF,
   141		ALARL,
   142		ALARW,
   143		ALEAL,
   144		ALEAW,
   145		ALEAVEL,
   146		ALEAVEW,
   147		ALOCK,
   148		ALODSB,
   149		ALODSL,
   150		ALODSW,
   151		ALONG,
   152		ALOOP,
   153		ALOOPEQ,
   154		ALOOPNE,
   155		ALSLL,
   156		ALSLW,
   157		AMOVB,
   158		AMOVL,
   159		AMOVW,
   160		AMOVBLSX,
   161		AMOVBLZX,
   162		AMOVBQSX,
   163		AMOVBQZX,
   164		AMOVBWSX,
   165		AMOVBWZX,
   166		AMOVWLSX,
   167		AMOVWLZX,
   168		AMOVWQSX,
   169		AMOVWQZX,
   170		AMOVSB,
   171		AMOVSL,
   172		AMOVSW,
   173		AMULB,
   174		AMULL,
   175		AMULW,
   176		ANAME,
   177		ANEGB,
   178		ANEGL,
   179		ANEGW,
   180		ANOP,
   181		ANOTB,
   182		ANOTL,
   183		ANOTW,
   184		AORB,
   185		AORL,
   186		AORW,
   187		AOUTB,
   188		AOUTL,
   189		AOUTW,
   190		AOUTSB,
   191		AOUTSL,
   192		AOUTSW,
   193		APAUSE,
   194		APOPAL,
   195		APOPAW,
   196		APOPFL,
   197		APOPFW,
   198		APOPL,
   199		APOPW,
   200		APUSHAL,
   201		APUSHAW,
   202		APUSHFL,
   203		APUSHFW,
   204		APUSHL,
   205		APUSHW,
   206		ARCLB,
   207		ARCLL,
   208		ARCLW,
   209		ARCRB,
   210		ARCRL,
   211		ARCRW,
   212		AREP,
   213		AREPN,
   214		ARET,
   215		AROLB,
   216		AROLL,
   217		AROLW,
   218		ARORB,
   219		ARORL,
   220		ARORW,
   221		ASAHF,
   222		ASALB,
   223		ASALL,
   224		ASALW,
   225		ASARB,
   226		ASARL,
   227		ASARW,
   228		ASBBB,
   229		ASBBL,
   230		ASBBW,
   231		ASCASB,
   232		ASCASL,
   233		ASCASW,
   234		ASETCC,
   235		ASETCS,
   236		ASETEQ,
   237		ASETGE,
   238		ASETGT,
   239		ASETHI,
   240		ASETLE,
   241		ASETLS,
   242		ASETLT,
   243		ASETMI,
   244		ASETNE,
   245		ASETOC,
   246		ASETOS,
   247		ASETPC,
   248		ASETPL,
   249		ASETPS,
   250		ACDQ,
   251		ACWD,
   252		ASHLB,
   253		ASHLL,
   254		ASHLW,
   255		ASHRB,
   256		ASHRL,
   257		ASHRW,
   258		ASTC,
   259		ASTD,
   260		ASTI,
   261		ASTOSB,
   262		ASTOSL,
   263		ASTOSW,
   264		ASUBB,
   265		ASUBL,
   266		ASUBW,
   267		ASYSCALL,
   268		ATESTB,
   269		ATESTL,
   270		ATESTW,
   271		ATEXT,
   272		AVERR,
   273		AVERW,
   274		AWAIT,
   275		AWORD,
   276		AXCHGB,
   277		AXCHGL,
   278		AXCHGW,
   279		AXLAT,
   280		AXORB,
   281		AXORL,
   282		AXORW,
   283	
   284		AFMOVB,
   285		AFMOVBP,
   286		AFMOVD,
   287		AFMOVDP,
   288		AFMOVF,
   289		AFMOVFP,
   290		AFMOVL,
   291		AFMOVLP,
   292		AFMOVV,
   293		AFMOVVP,
   294		AFMOVW,
   295		AFMOVWP,
   296		AFMOVX,
   297		AFMOVXP,
   298	
   299		AFCOMB,
   300		AFCOMBP,
   301		AFCOMD,
   302		AFCOMDP,
   303		AFCOMDPP,
   304		AFCOMF,
   305		AFCOMFP,
   306		AFCOML,
   307		AFCOMLP,
   308		AFCOMW,
   309		AFCOMWP,
   310		AFUCOM,
   311		AFUCOMP,
   312		AFUCOMPP,
   313	
   314		AFADDDP,
   315		AFADDW,
   316		AFADDL,
   317		AFADDF,
   318		AFADDD,
   319	
   320		AFMULDP,
   321		AFMULW,
   322		AFMULL,
   323		AFMULF,
   324		AFMULD,
   325	
   326		AFSUBDP,
   327		AFSUBW,
   328		AFSUBL,
   329		AFSUBF,
   330		AFSUBD,
   331	
   332		AFSUBRDP,
   333		AFSUBRW,
   334		AFSUBRL,
   335		AFSUBRF,
   336		AFSUBRD,
   337	
   338		AFDIVDP,
   339		AFDIVW,
   340		AFDIVL,
   341		AFDIVF,
   342		AFDIVD,
   343	
   344		AFDIVRDP,
   345		AFDIVRW,
   346		AFDIVRL,
   347		AFDIVRF,
   348		AFDIVRD,
   349	
   350		AFXCHD,
   351		AFFREE,
   352	
   353		AFLDCW,
   354		AFLDENV,
   355		AFRSTOR,
   356		AFSAVE,
   357		AFSTCW,
   358		AFSTENV,
   359		AFSTSW,
   360	
   361		AF2XM1,
   362		AFABS,
   363		AFCHS,
   364		AFCLEX,
   365		AFCOS,
   366		AFDECSTP,
   367		AFINCSTP,
   368		AFINIT,
   369		AFLD1,
   370		AFLDL2E,
   371		AFLDL2T,
   372		AFLDLG2,
   373		AFLDLN2,
   374		AFLDPI,
   375		AFLDZ,
   376		AFNOP,
   377		AFPATAN,
   378		AFPREM,
   379		AFPREM1,
   380		AFPTAN,
   381		AFRNDINT,
   382		AFSCALE,
   383		AFSIN,
   384		AFSINCOS,
   385		AFSQRT,
   386		AFTST,
   387		AFXAM,
   388		AFXTRACT,
   389		AFYL2X,
   390		AFYL2XP1,
   391	
   392		AEND,
   393	
   394		ADYNT_,
   395		AINIT_,
   396	
   397		ASIGNAME,
   398	
   399		/* extra 32-bit operations */
   400		ACMPXCHGB,
   401		ACMPXCHGL,
   402		ACMPXCHGW,
   403		ACMPXCHG8B,
   404		ACPUID,
   405		AINVD,
   406		AINVLPG,
   407		ALFENCE,
   408		AMFENCE,
   409		AMOVNTIL,
   410		ARDMSR,
   411		ARDPMC,
   412		ARDTSC,
   413		ARSM,
   414		ASFENCE,
   415		ASYSRET,
   416		AWBINVD,
   417		AWRMSR,
   418		AXADDB,
   419		AXADDL,
   420		AXADDW,
   421	
   422		/* conditional move */
   423		ACMOVLCC,
   424		ACMOVLCS,
   425		ACMOVLEQ,
   426		ACMOVLGE,
   427		ACMOVLGT,
   428		ACMOVLHI,
   429		ACMOVLLE,
   430		ACMOVLLS,
   431		ACMOVLLT,
   432		ACMOVLMI,
   433		ACMOVLNE,
   434		ACMOVLOC,
   435		ACMOVLOS,
   436		ACMOVLPC,
   437		ACMOVLPL,
   438		ACMOVLPS,
   439		ACMOVQCC,
   440		ACMOVQCS,
   441		ACMOVQEQ,
   442		ACMOVQGE,
   443		ACMOVQGT,
   444		ACMOVQHI,
   445		ACMOVQLE,
   446		ACMOVQLS,
   447		ACMOVQLT,
   448		ACMOVQMI,
   449		ACMOVQNE,
   450		ACMOVQOC,
   451		ACMOVQOS,
   452		ACMOVQPC,
   453		ACMOVQPL,
   454		ACMOVQPS,
   455		ACMOVWCC,
   456		ACMOVWCS,
   457		ACMOVWEQ,
   458		ACMOVWGE,
   459		ACMOVWGT,
   460		ACMOVWHI,
   461		ACMOVWLE,
   462		ACMOVWLS,
   463		ACMOVWLT,
   464		ACMOVWMI,
   465		ACMOVWNE,
   466		ACMOVWOC,
   467		ACMOVWOS,
   468		ACMOVWPC,
   469		ACMOVWPL,
   470		ACMOVWPS,
   471	
   472		/* 64-bit */
   473		AADCQ,
   474		AADDQ,
   475		AANDQ,
   476		ABSFQ,
   477		ABSRQ,
   478		ABTCQ,
   479		ABTQ,
   480		ABTRQ,
   481		ABTSQ,
   482		ACMPQ,
   483		ACMPSQ,
   484		ACMPXCHGQ,
   485		ACQO,
   486		ADIVQ,
   487		AIDIVQ,
   488		AIMULQ,
   489		AIRETQ,
   490		ALEAQ,
   491		ALEAVEQ,
   492		ALODSQ,
   493		AMOVQ,
   494		AMOVLQSX,
   495		AMOVLQZX,
   496		AMOVNTIQ,
   497		AMOVSQ,
   498		AMULQ,
   499		ANEGQ,
   500		ANOTQ,
   501		AORQ,
   502		APOPFQ,
   503		APOPQ,
   504		APUSHFQ,
   505		APUSHQ,
   506		ARCLQ,
   507		ARCRQ,
   508		AROLQ,
   509		ARORQ,
   510		AQUAD,
   511		ASALQ,
   512		ASARQ,
   513		ASBBQ,
   514		ASCASQ,
   515		ASHLQ,
   516		ASHRQ,
   517		ASTOSQ,
   518		ASUBQ,
   519		ATESTQ,
   520		AXADDQ,
   521		AXCHGQ,
   522		AXORQ,
   523	
   524		/* media */
   525		AADDPD,
   526		AADDPS,
   527		AADDSD,
   528		AADDSS,
   529		AANDNPD,
   530		AANDNPS,
   531		AANDPD,
   532		AANDPS,
   533		ACMPPD,
   534		ACMPPS,
   535		ACMPSD,
   536		ACMPSS,
   537		ACOMISD,
   538		ACOMISS,
   539		ACVTPD2PL,
   540		ACVTPD2PS,
   541		ACVTPL2PD,
   542		ACVTPL2PS,
   543		ACVTPS2PD,
   544		ACVTPS2PL,
   545		ACVTSD2SL,
   546		ACVTSD2SQ,
   547		ACVTSD2SS,
   548		ACVTSL2SD,
   549		ACVTSL2SS,
   550		ACVTSQ2SD,
   551		ACVTSQ2SS,
   552		ACVTSS2SD,
   553		ACVTSS2SL,
   554		ACVTSS2SQ,
   555		ACVTTPD2PL,
   556		ACVTTPS2PL,
   557		ACVTTSD2SL,
   558		ACVTTSD2SQ,
   559		ACVTTSS2SL,
   560		ACVTTSS2SQ,
   561		ADIVPD,
   562		ADIVPS,
   563		ADIVSD,
   564		ADIVSS,
   565		AEMMS,
   566		AFXRSTOR,
   567		AFXRSTOR64,
   568		AFXSAVE,
   569		AFXSAVE64,
   570		ALDMXCSR,
   571		AMASKMOVOU,
   572		AMASKMOVQ,
   573		AMAXPD,
   574		AMAXPS,
   575		AMAXSD,
   576		AMAXSS,
   577		AMINPD,
   578		AMINPS,
   579		AMINSD,
   580		AMINSS,
   581		AMOVAPD,
   582		AMOVAPS,
   583		AMOVOU,
   584		AMOVHLPS,
   585		AMOVHPD,
   586		AMOVHPS,
   587		AMOVLHPS,
   588		AMOVLPD,
   589		AMOVLPS,
   590		AMOVMSKPD,
   591		AMOVMSKPS,
   592		AMOVNTO,
   593		AMOVNTPD,
   594		AMOVNTPS,
   595		AMOVNTQ,
   596		AMOVO,
   597		AMOVQOZX,
   598		AMOVSD,
   599		AMOVSS,
   600		AMOVUPD,
   601		AMOVUPS,
   602		AMULPD,
   603		AMULPS,
   604		AMULSD,
   605		AMULSS,
   606		AORPD,
   607		AORPS,
   608		APACKSSLW,
   609		APACKSSWB,
   610		APACKUSWB,
   611		APADDB,
   612		APADDL,
   613		APADDQ,
   614		APADDSB,
   615		APADDSW,
   616		APADDUSB,
   617		APADDUSW,
   618		APADDW,
   619		APANDB,
   620		APANDL,
   621		APANDSB,
   622		APANDSW,
   623		APANDUSB,
   624		APANDUSW,
   625		APANDW,
   626		APAND,
   627		APANDN,
   628		APAVGB,
   629		APAVGW,
   630		APCMPEQB,
   631		APCMPEQL,
   632		APCMPEQW,
   633		APCMPGTB,
   634		APCMPGTL,
   635		APCMPGTW,
   636		APEXTRW,
   637		APFACC,
   638		APFADD,
   639		APFCMPEQ,
   640		APFCMPGE,
   641		APFCMPGT,
   642		APFMAX,
   643		APFMIN,
   644		APFMUL,
   645		APFNACC,
   646		APFPNACC,
   647		APFRCP,
   648		APFRCPIT1,
   649		APFRCPI2T,
   650		APFRSQIT1,
   651		APFRSQRT,
   652		APFSUB,
   653		APFSUBR,
   654		APINSRW,
   655		APMADDWL,
   656		APMAXSW,
   657		APMAXUB,
   658		APMINSW,
   659		APMINUB,
   660		APMOVMSKB,
   661		APMULHRW,
   662		APMULHUW,
   663		APMULHW,
   664		APMULLW,
   665		APMULULQ,
   666		APOR,
   667		APSADBW,
   668		APSHUFHW,
   669		APSHUFL,
   670		APSHUFLW,
   671		APSHUFW,
   672		APSLLO,
   673		APSLLL,
   674		APSLLQ,
   675		APSLLW,
   676		APSRAL,
   677		APSRAW,
   678		APSRLO,
   679		APSRLL,
   680		APSRLQ,
   681		APSRLW,
   682		APSUBB,
   683		APSUBL,
   684		APSUBQ,
   685		APSUBSB,
   686		APSUBSW,
   687		APSUBUSB,
   688		APSUBUSW,
   689		APSUBW,
   690		APSWAPL,
   691		APUNPCKHBW,
   692		APUNPCKHLQ,
   693		APUNPCKHQDQ,
   694		APUNPCKHWL,
   695		APUNPCKLBW,
   696		APUNPCKLLQ,
   697		APUNPCKLQDQ,
   698		APUNPCKLWL,
   699		APXOR,
   700		ARCPPS,
   701		ARCPSS,
   702		ARSQRTPS,
   703		ARSQRTSS,
   704		ASHUFPD,
   705		ASHUFPS,
   706		ASQRTPD,
   707		ASQRTPS,
   708		ASQRTSD,
   709		ASQRTSS,
   710		ASTMXCSR,
   711		ASUBPD,
   712		ASUBPS,
   713		ASUBSD,
   714		ASUBSS,
   715		AUCOMISD,
   716		AUCOMISS,
   717		AUNPCKHPD,
   718		AUNPCKHPS,
   719		AUNPCKLPD,
   720		AUNPCKLPS,
   721		AXORPD,
   722		AXORPS,
   723	
   724		APF2IW,
   725		APF2IL,
   726		API2FW,
   727		API2FL,
   728		ARETFW,
   729		ARETFL,
   730		ARETFQ,
   731		ASWAPGS,
   732	
   733		AMODE,
   734		ACRC32B,
   735		ACRC32Q,
   736	
   737		ALAST
   738	};
   739	
   740	enum
   741	{
   742	
   743		D_AL		= 0,
   744		D_CL,
   745		D_DL,
   746		D_BL,
   747		D_SPB,
   748		D_BPB,
   749		D_SIB,
   750		D_DIB,
   751		D_R8B,
   752		D_R9B,
   753		D_R10B,
   754		D_R11B,
   755		D_R12B,
   756		D_R13B,
   757		D_R14B,
   758		D_R15B,
   759	
   760		D_AX		= 16,
   761		D_CX,
   762		D_DX,
   763		D_BX,
   764		D_SP,
   765		D_BP,
   766		D_SI,
   767		D_DI,
   768		D_R8,
   769		D_R9,
   770		D_R10,
   771		D_R11,
   772		D_R12,
   773		D_R13,
   774		D_R14,
   775		D_R15,
   776	
   777		D_AH		= 32,
   778		D_CH,
   779		D_DH,
   780		D_BH,
   781	
   782		D_F0		= 36,
   783	
   784		D_M0		= 44,
   785	
   786		D_X0		= 52,
   787		D_X1,
   788		D_X2,
   789		D_X3,
   790		D_X4,
   791		D_X5,
   792		D_X6,
   793		D_X7,
   794	
   795		D_CS		= 68,
   796		D_SS,
   797		D_DS,
   798		D_ES,
   799		D_FS,
   800		D_GS,
   801	
   802		D_GDTR,		/* global descriptor table register */
   803		D_IDTR,		/* interrupt descriptor table register */
   804		D_LDTR,		/* local descriptor table register */
   805		D_MSW,		/* machine status word */
   806		D_TASK,		/* task register */
   807	
   808		D_CR		= 79,
   809		D_DR		= 95,
   810		D_TR		= 103,
   811	
   812		D_NONE		= 111,
   813	
   814		D_BRANCH	= 112,
   815		D_EXTERN	= 113,
   816		D_STATIC	= 114,
   817		D_AUTO		= 115,
   818		D_PARAM		= 116,
   819		D_CONST		= 117,
   820		D_FCONST	= 118,
   821		D_SCONST	= 119,
   822		D_ADDR		= 120,
   823	
   824		D_FILE,
   825		D_FILE1,
   826	
   827		D_INDIR,	/* additive */
   828	
   829		D_SIZE = D_INDIR + D_INDIR,	/* 6l internal */
   830		D_PCREL,
   831	
   832		T_TYPE		= 1<<0,
   833		T_INDEX		= 1<<1,
   834		T_OFFSET	= 1<<2,
   835		T_FCONST	= 1<<3,
   836		T_SYM		= 1<<4,
   837		T_SCONST	= 1<<5,
   838		T_64		= 1<<6,
   839		T_GOTYPE	= 1<<7,
   840	
   841		REGARG		= -1,
   842		REGRET		= D_AX,
   843		FREGRET		= D_X0,
   844		REGSP		= D_SP,
   845		REGTMP		= D_DI,
   846		REGEXT		= D_R15,	/* compiler allocates external registers R15 down */
   847		FREGMIN		= D_X0+5,	/* first register variable */
   848		FREGEXT		= D_X0+15	/* first external register */
   849	};
   850	
   851	/*
   852	 * this is the ranlib header
   853	 */
   854	#define	SYMDEF	"__.SYMDEF"
   855	
   856	/*
   857	 * this is the simulated IEEE floating point
   858	 */
   859	typedef	struct	ieee	Ieee;
   860	struct	ieee
   861	{
   862		int32	l;	/* contains ls-man	0xffffffff */
   863		int32	h;	/* contains sign	0x80000000
   864					    exp		0x7ff00000
   865					    ms-man	0x000fffff */
   866	};

release.r60.3. Except as noted, this content is licensed under a Creative Commons Attribution 3.0 License.