]> Cypherpunks.ru repositories - gostls13.git/blob - src/cmd/internal/obj/x86/a.out.go
[dev.ssa] Merge remote-tracking branch 'origin/master' into mergebranch
[gostls13.git] / src / cmd / internal / obj / x86 / a.out.go
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 package x86
32
33 import "cmd/internal/obj"
34
35 //go:generate go run ../stringer.go -i $GOFILE -o anames.go -p x86
36
37 /*
38  *      amd64
39  */
40 const (
41         AAAA = obj.ABaseAMD64 + obj.A_ARCHSPECIFIC + iota
42         AAAD
43         AAAM
44         AAAS
45         AADCB
46         AADCL
47         AADCW
48         AADDB
49         AADDL
50         AADDW
51         AADJSP
52         AANDB
53         AANDL
54         AANDW
55         AARPL
56         ABOUNDL
57         ABOUNDW
58         ABSFL
59         ABSFW
60         ABSRL
61         ABSRW
62         ABTL
63         ABTW
64         ABTCL
65         ABTCW
66         ABTRL
67         ABTRW
68         ABTSL
69         ABTSW
70         ABYTE
71         ACLC
72         ACLD
73         ACLI
74         ACLTS
75         ACMC
76         ACMPB
77         ACMPL
78         ACMPW
79         ACMPSB
80         ACMPSL
81         ACMPSW
82         ADAA
83         ADAS
84         ADECB
85         ADECL
86         ADECQ
87         ADECW
88         ADIVB
89         ADIVL
90         ADIVW
91         AENTER
92         AHLT
93         AIDIVB
94         AIDIVL
95         AIDIVW
96         AIMULB
97         AIMULL
98         AIMULW
99         AINB
100         AINL
101         AINW
102         AINCB
103         AINCL
104         AINCQ
105         AINCW
106         AINSB
107         AINSL
108         AINSW
109         AINT
110         AINTO
111         AIRETL
112         AIRETW
113         AJCC // >= unsigned
114         AJCS // < unsigned
115         AJCXZL
116         AJEQ // == (zero)
117         AJGE // >= signed
118         AJGT // > signed
119         AJHI // > unsigned
120         AJLE // <= signed
121         AJLS // <= unsigned
122         AJLT // < signed
123         AJMI // sign bit set (negative)
124         AJNE // != (nonzero)
125         AJOC // overflow clear
126         AJOS // overflow set
127         AJPC // parity clear
128         AJPL // sign bit clear (positive)
129         AJPS // parity set
130         ALAHF
131         ALARL
132         ALARW
133         ALEAL
134         ALEAW
135         ALEAVEL
136         ALEAVEW
137         ALOCK
138         ALODSB
139         ALODSL
140         ALODSW
141         ALONG
142         ALOOP
143         ALOOPEQ
144         ALOOPNE
145         ALSLL
146         ALSLW
147         AMOVB
148         AMOVL
149         AMOVW
150         AMOVBLSX
151         AMOVBLZX
152         AMOVBQSX
153         AMOVBQZX
154         AMOVBWSX
155         AMOVBWZX
156         AMOVWLSX
157         AMOVWLZX
158         AMOVWQSX
159         AMOVWQZX
160         AMOVSB
161         AMOVSL
162         AMOVSW
163         AMULB
164         AMULL
165         AMULW
166         ANEGB
167         ANEGL
168         ANEGW
169         ANOTB
170         ANOTL
171         ANOTW
172         AORB
173         AORL
174         AORW
175         AOUTB
176         AOUTL
177         AOUTW
178         AOUTSB
179         AOUTSL
180         AOUTSW
181         APAUSE
182         APOPAL
183         APOPAW
184         APOPFL
185         APOPFW
186         APOPL
187         APOPW
188         APUSHAL
189         APUSHAW
190         APUSHFL
191         APUSHFW
192         APUSHL
193         APUSHW
194         ARCLB
195         ARCLL
196         ARCLW
197         ARCRB
198         ARCRL
199         ARCRW
200         AREP
201         AREPN
202         AROLB
203         AROLL
204         AROLW
205         ARORB
206         ARORL
207         ARORW
208         ASAHF
209         ASALB
210         ASALL
211         ASALW
212         ASARB
213         ASARL
214         ASARW
215         ASBBB
216         ASBBL
217         ASBBW
218         ASCASB
219         ASCASL
220         ASCASW
221         ASETCC
222         ASETCS
223         ASETEQ
224         ASETGE
225         ASETGT
226         ASETHI
227         ASETLE
228         ASETLS
229         ASETLT
230         ASETMI
231         ASETNE
232         ASETOC
233         ASETOS
234         ASETPC
235         ASETPL
236         ASETPS
237         ACDQ
238         ACWD
239         ASHLB
240         ASHLL
241         ASHLW
242         ASHRB
243         ASHRL
244         ASHRW
245         ASTC
246         ASTD
247         ASTI
248         ASTOSB
249         ASTOSL
250         ASTOSW
251         ASUBB
252         ASUBL
253         ASUBW
254         ASYSCALL
255         ATESTB
256         ATESTL
257         ATESTW
258         AVERR
259         AVERW
260         AWAIT
261         AWORD
262         AXCHGB
263         AXCHGL
264         AXCHGW
265         AXLAT
266         AXORB
267         AXORL
268         AXORW
269
270         AFMOVB
271         AFMOVBP
272         AFMOVD
273         AFMOVDP
274         AFMOVF
275         AFMOVFP
276         AFMOVL
277         AFMOVLP
278         AFMOVV
279         AFMOVVP
280         AFMOVW
281         AFMOVWP
282         AFMOVX
283         AFMOVXP
284
285         AFCOMB
286         AFCOMBP
287         AFCOMD
288         AFCOMDP
289         AFCOMDPP
290         AFCOMF
291         AFCOMFP
292         AFCOML
293         AFCOMLP
294         AFCOMW
295         AFCOMWP
296         AFUCOM
297         AFUCOMP
298         AFUCOMPP
299
300         AFADDDP
301         AFADDW
302         AFADDL
303         AFADDF
304         AFADDD
305
306         AFMULDP
307         AFMULW
308         AFMULL
309         AFMULF
310         AFMULD
311
312         AFSUBDP
313         AFSUBW
314         AFSUBL
315         AFSUBF
316         AFSUBD
317
318         AFSUBRDP
319         AFSUBRW
320         AFSUBRL
321         AFSUBRF
322         AFSUBRD
323
324         AFDIVDP
325         AFDIVW
326         AFDIVL
327         AFDIVF
328         AFDIVD
329
330         AFDIVRDP
331         AFDIVRW
332         AFDIVRL
333         AFDIVRF
334         AFDIVRD
335
336         AFXCHD
337         AFFREE
338
339         AFLDCW
340         AFLDENV
341         AFRSTOR
342         AFSAVE
343         AFSTCW
344         AFSTENV
345         AFSTSW
346
347         AF2XM1
348         AFABS
349         AFCHS
350         AFCLEX
351         AFCOS
352         AFDECSTP
353         AFINCSTP
354         AFINIT
355         AFLD1
356         AFLDL2E
357         AFLDL2T
358         AFLDLG2
359         AFLDLN2
360         AFLDPI
361         AFLDZ
362         AFNOP
363         AFPATAN
364         AFPREM
365         AFPREM1
366         AFPTAN
367         AFRNDINT
368         AFSCALE
369         AFSIN
370         AFSINCOS
371         AFSQRT
372         AFTST
373         AFXAM
374         AFXTRACT
375         AFYL2X
376         AFYL2XP1
377
378         // extra 32-bit operations
379         ACMPXCHGB
380         ACMPXCHGL
381         ACMPXCHGW
382         ACMPXCHG8B
383         ACPUID
384         AINVD
385         AINVLPG
386         ALFENCE
387         AMFENCE
388         AMOVNTIL
389         ARDMSR
390         ARDPMC
391         ARDTSC
392         ARSM
393         ASFENCE
394         ASYSRET
395         AWBINVD
396         AWRMSR
397         AXADDB
398         AXADDL
399         AXADDW
400
401         // conditional move
402         ACMOVLCC
403         ACMOVLCS
404         ACMOVLEQ
405         ACMOVLGE
406         ACMOVLGT
407         ACMOVLHI
408         ACMOVLLE
409         ACMOVLLS
410         ACMOVLLT
411         ACMOVLMI
412         ACMOVLNE
413         ACMOVLOC
414         ACMOVLOS
415         ACMOVLPC
416         ACMOVLPL
417         ACMOVLPS
418         ACMOVQCC
419         ACMOVQCS
420         ACMOVQEQ
421         ACMOVQGE
422         ACMOVQGT
423         ACMOVQHI
424         ACMOVQLE
425         ACMOVQLS
426         ACMOVQLT
427         ACMOVQMI
428         ACMOVQNE
429         ACMOVQOC
430         ACMOVQOS
431         ACMOVQPC
432         ACMOVQPL
433         ACMOVQPS
434         ACMOVWCC
435         ACMOVWCS
436         ACMOVWEQ
437         ACMOVWGE
438         ACMOVWGT
439         ACMOVWHI
440         ACMOVWLE
441         ACMOVWLS
442         ACMOVWLT
443         ACMOVWMI
444         ACMOVWNE
445         ACMOVWOC
446         ACMOVWOS
447         ACMOVWPC
448         ACMOVWPL
449         ACMOVWPS
450
451         // 64-bit
452         AADCQ
453         AADDQ
454         AANDQ
455         ABSFQ
456         ABSRQ
457         ABTCQ
458         ABTQ
459         ABTRQ
460         ABTSQ
461         ACMPQ
462         ACMPSQ
463         ACMPXCHGQ
464         ACQO
465         ADIVQ
466         AIDIVQ
467         AIMULQ
468         AIRETQ
469         AJCXZQ
470         ALEAQ
471         ALEAVEQ
472         ALODSQ
473         AMOVQ
474         AMOVLQSX
475         AMOVLQZX
476         AMOVNTIQ
477         AMOVSQ
478         AMULQ
479         ANEGQ
480         ANOTQ
481         AORQ
482         APOPFQ
483         APOPQ
484         APUSHFQ
485         APUSHQ
486         ARCLQ
487         ARCRQ
488         AROLQ
489         ARORQ
490         AQUAD
491         ASALQ
492         ASARQ
493         ASBBQ
494         ASCASQ
495         ASHLQ
496         ASHRQ
497         ASTOSQ
498         ASUBQ
499         ATESTQ
500         AXADDQ
501         AXCHGQ
502         AXORQ
503
504         // media
505         AADDPD
506         AADDPS
507         AADDSD
508         AADDSS
509         AANDNPD
510         AANDNPS
511         AANDPD
512         AANDPS
513         ACMPPD
514         ACMPPS
515         ACMPSD
516         ACMPSS
517         ACOMISD
518         ACOMISS
519         ACVTPD2PL
520         ACVTPD2PS
521         ACVTPL2PD
522         ACVTPL2PS
523         ACVTPS2PD
524         ACVTPS2PL
525         ACVTSD2SL
526         ACVTSD2SQ
527         ACVTSD2SS
528         ACVTSL2SD
529         ACVTSL2SS
530         ACVTSQ2SD
531         ACVTSQ2SS
532         ACVTSS2SD
533         ACVTSS2SL
534         ACVTSS2SQ
535         ACVTTPD2PL
536         ACVTTPS2PL
537         ACVTTSD2SL
538         ACVTTSD2SQ
539         ACVTTSS2SL
540         ACVTTSS2SQ
541         ADIVPD
542         ADIVPS
543         ADIVSD
544         ADIVSS
545         AEMMS
546         AFXRSTOR
547         AFXRSTOR64
548         AFXSAVE
549         AFXSAVE64
550         ALDMXCSR
551         AMASKMOVOU
552         AMASKMOVQ
553         AMAXPD
554         AMAXPS
555         AMAXSD
556         AMAXSS
557         AMINPD
558         AMINPS
559         AMINSD
560         AMINSS
561         AMOVAPD
562         AMOVAPS
563         AMOVOU
564         AMOVHLPS
565         AMOVHPD
566         AMOVHPS
567         AMOVLHPS
568         AMOVLPD
569         AMOVLPS
570         AMOVMSKPD
571         AMOVMSKPS
572         AMOVNTO
573         AMOVNTPD
574         AMOVNTPS
575         AMOVNTQ
576         AMOVO
577         AMOVQOZX
578         AMOVSD
579         AMOVSS
580         AMOVUPD
581         AMOVUPS
582         AMULPD
583         AMULPS
584         AMULSD
585         AMULSS
586         AORPD
587         AORPS
588         APACKSSLW
589         APACKSSWB
590         APACKUSWB
591         APADDB
592         APADDL
593         APADDQ
594         APADDSB
595         APADDSW
596         APADDUSB
597         APADDUSW
598         APADDW
599         APANDB
600         APANDL
601         APANDSB
602         APANDSW
603         APANDUSB
604         APANDUSW
605         APANDW
606         APAND
607         APANDN
608         APAVGB
609         APAVGW
610         APCMPEQB
611         APCMPEQL
612         APCMPEQW
613         APCMPGTB
614         APCMPGTL
615         APCMPGTW
616         APEXTRW
617         APFACC
618         APFADD
619         APFCMPEQ
620         APFCMPGE
621         APFCMPGT
622         APFMAX
623         APFMIN
624         APFMUL
625         APFNACC
626         APFPNACC
627         APFRCP
628         APFRCPIT1
629         APFRCPI2T
630         APFRSQIT1
631         APFRSQRT
632         APFSUB
633         APFSUBR
634         APINSRW
635         APINSRD
636         APINSRQ
637         APMADDWL
638         APMAXSW
639         APMAXUB
640         APMINSW
641         APMINUB
642         APMOVMSKB
643         APMULHRW
644         APMULHUW
645         APMULHW
646         APMULLW
647         APMULULQ
648         APOR
649         APSADBW
650         APSHUFHW
651         APSHUFL
652         APSHUFLW
653         APSHUFW
654         APSHUFB
655         APSLLO
656         APSLLL
657         APSLLQ
658         APSLLW
659         APSRAL
660         APSRAW
661         APSRLO
662         APSRLL
663         APSRLQ
664         APSRLW
665         APSUBB
666         APSUBL
667         APSUBQ
668         APSUBSB
669         APSUBSW
670         APSUBUSB
671         APSUBUSW
672         APSUBW
673         APSWAPL
674         APUNPCKHBW
675         APUNPCKHLQ
676         APUNPCKHQDQ
677         APUNPCKHWL
678         APUNPCKLBW
679         APUNPCKLLQ
680         APUNPCKLQDQ
681         APUNPCKLWL
682         APXOR
683         ARCPPS
684         ARCPSS
685         ARSQRTPS
686         ARSQRTSS
687         ASHUFPD
688         ASHUFPS
689         ASQRTPD
690         ASQRTPS
691         ASQRTSD
692         ASQRTSS
693         ASTMXCSR
694         ASUBPD
695         ASUBPS
696         ASUBSD
697         ASUBSS
698         AUCOMISD
699         AUCOMISS
700         AUNPCKHPD
701         AUNPCKHPS
702         AUNPCKLPD
703         AUNPCKLPS
704         AXORPD
705         AXORPS
706
707         APF2IW
708         APF2IL
709         API2FW
710         API2FL
711         ARETFW
712         ARETFL
713         ARETFQ
714         ASWAPGS
715
716         AMODE
717         ACRC32B
718         ACRC32Q
719         AIMUL3Q
720
721         APREFETCHT0
722         APREFETCHT1
723         APREFETCHT2
724         APREFETCHNTA
725
726         AMOVQL
727         ABSWAPL
728         ABSWAPQ
729
730         AAESENC
731         AAESENCLAST
732         AAESDEC
733         AAESDECLAST
734         AAESIMC
735         AAESKEYGENASSIST
736
737         AROUNDPS
738         AROUNDSS
739         AROUNDPD
740         AROUNDSD
741
742         APSHUFD
743         APCLMULQDQ
744
745         AVZEROUPPER
746         AMOVHDU
747         AMOVNTHD
748         AMOVHDA
749
750         // from 386
751         AJCXZW
752         AFCMOVCC
753         AFCMOVCS
754         AFCMOVEQ
755         AFCMOVHI
756         AFCMOVLS
757         AFCMOVNE
758         AFCMOVNU
759         AFCMOVUN
760         AFCOMI
761         AFCOMIP
762         AFUCOMI
763         AFUCOMIP
764
765         ALAST
766 )
767
768 const (
769         REG_NONE = 0
770 )
771
772 const (
773         REG_AL = obj.RBaseAMD64 + iota
774         REG_CL
775         REG_DL
776         REG_BL
777         REG_SPB
778         REG_BPB
779         REG_SIB
780         REG_DIB
781         REG_R8B
782         REG_R9B
783         REG_R10B
784         REG_R11B
785         REG_R12B
786         REG_R13B
787         REG_R14B
788         REG_R15B
789
790         REG_AX
791         REG_CX
792         REG_DX
793         REG_BX
794         REG_SP
795         REG_BP
796         REG_SI
797         REG_DI
798         REG_R8
799         REG_R9
800         REG_R10
801         REG_R11
802         REG_R12
803         REG_R13
804         REG_R14
805         REG_R15
806
807         REG_AH
808         REG_CH
809         REG_DH
810         REG_BH
811
812         REG_F0
813         REG_F1
814         REG_F2
815         REG_F3
816         REG_F4
817         REG_F5
818         REG_F6
819         REG_F7
820
821         REG_M0
822         REG_M1
823         REG_M2
824         REG_M3
825         REG_M4
826         REG_M5
827         REG_M6
828         REG_M7
829
830         REG_X0
831         REG_X1
832         REG_X2
833         REG_X3
834         REG_X4
835         REG_X5
836         REG_X6
837         REG_X7
838         REG_X8
839         REG_X9
840         REG_X10
841         REG_X11
842         REG_X12
843         REG_X13
844         REG_X14
845         REG_X15
846
847         REG_CS
848         REG_SS
849         REG_DS
850         REG_ES
851         REG_FS
852         REG_GS
853
854         REG_GDTR /* global descriptor table register */
855         REG_IDTR /* interrupt descriptor table register */
856         REG_LDTR /* local descriptor table register */
857         REG_MSW  /* machine status word */
858         REG_TASK /* task register */
859
860         REG_CR0
861         REG_CR1
862         REG_CR2
863         REG_CR3
864         REG_CR4
865         REG_CR5
866         REG_CR6
867         REG_CR7
868         REG_CR8
869         REG_CR9
870         REG_CR10
871         REG_CR11
872         REG_CR12
873         REG_CR13
874         REG_CR14
875         REG_CR15
876
877         REG_DR0
878         REG_DR1
879         REG_DR2
880         REG_DR3
881         REG_DR4
882         REG_DR5
883         REG_DR6
884         REG_DR7
885
886         REG_TR0
887         REG_TR1
888         REG_TR2
889         REG_TR3
890         REG_TR4
891         REG_TR5
892         REG_TR6
893         REG_TR7
894
895         REG_TLS
896
897         MAXREG
898
899         REG_CR = REG_CR0
900         REG_DR = REG_DR0
901         REG_TR = REG_TR0
902
903         REGARG   = -1
904         REGRET   = REG_AX
905         FREGRET  = REG_X0
906         REGSP    = REG_SP
907         REGTMP   = REG_DI
908         REGCTXT  = REG_DX
909         REGEXT   = REG_R15     /* compiler allocates external registers R15 down */
910         FREGMIN  = REG_X0 + 5  /* first register variable */
911         FREGEXT  = REG_X0 + 15 /* first external register */
912         T_TYPE   = 1 << 0
913         T_INDEX  = 1 << 1
914         T_OFFSET = 1 << 2
915         T_FCONST = 1 << 3
916         T_SYM    = 1 << 4
917         T_SCONST = 1 << 5
918         T_64     = 1 << 6
919         T_GOTYPE = 1 << 7
920 )