github.com/FenixAra/go@v0.0.0-20170127160404-96ea0918e670/src/cmd/internal/obj/x86/a.out.go (about) 1 // Inferno utils/6c/6.out.h 2 // https://bitbucket.org/inferno-os/inferno-os/src/default/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 const ( 38 /* mark flags */ 39 DONE = 1 << iota 40 PRESERVEFLAGS // not allowed to clobber flags 41 ) 42 43 /* 44 * amd64 45 */ 46 const ( 47 AAAA = obj.ABaseAMD64 + obj.A_ARCHSPECIFIC + iota 48 AAAD 49 AAAM 50 AAAS 51 AADCB 52 AADCL 53 AADCW 54 AADDB 55 AADDL 56 AADDW 57 AADJSP 58 AANDB 59 AANDL 60 AANDW 61 AARPL 62 ABOUNDL 63 ABOUNDW 64 ABSFL 65 ABSFW 66 ABSRL 67 ABSRW 68 ABTL 69 ABTW 70 ABTCL 71 ABTCW 72 ABTRL 73 ABTRW 74 ABTSL 75 ABTSW 76 ABYTE 77 ACLC 78 ACLD 79 ACLI 80 ACLTS 81 ACMC 82 ACMPB 83 ACMPL 84 ACMPW 85 ACMPSB 86 ACMPSL 87 ACMPSW 88 ADAA 89 ADAS 90 ADECB 91 ADECL 92 ADECQ 93 ADECW 94 ADIVB 95 ADIVL 96 ADIVW 97 AENTER 98 AHADDPD 99 AHADDPS 100 AHLT 101 AHSUBPD 102 AHSUBPS 103 AIDIVB 104 AIDIVL 105 AIDIVW 106 AIMULB 107 AIMULL 108 AIMULW 109 AINB 110 AINL 111 AINW 112 AINCB 113 AINCL 114 AINCQ 115 AINCW 116 AINSB 117 AINSL 118 AINSW 119 AINT 120 AINTO 121 AIRETL 122 AIRETW 123 AJCC // >= unsigned 124 AJCS // < unsigned 125 AJCXZL 126 AJEQ // == (zero) 127 AJGE // >= signed 128 AJGT // > signed 129 AJHI // > unsigned 130 AJLE // <= signed 131 AJLS // <= unsigned 132 AJLT // < signed 133 AJMI // sign bit set (negative) 134 AJNE // != (nonzero) 135 AJOC // overflow clear 136 AJOS // overflow set 137 AJPC // parity clear 138 AJPL // sign bit clear (positive) 139 AJPS // parity set 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 ANEGB 177 ANEGL 178 ANEGW 179 ANOTB 180 ANOTL 181 ANOTW 182 AORB 183 AORL 184 AORW 185 AOUTB 186 AOUTL 187 AOUTW 188 AOUTSB 189 AOUTSL 190 AOUTSW 191 APAUSE 192 APOPAL 193 APOPAW 194 APOPCNTW 195 APOPCNTL 196 APOPCNTQ 197 APOPFL 198 APOPFW 199 APOPL 200 APOPW 201 APUSHAL 202 APUSHAW 203 APUSHFL 204 APUSHFW 205 APUSHL 206 APUSHW 207 ARCLB 208 ARCLL 209 ARCLW 210 ARCRB 211 ARCRL 212 ARCRW 213 AREP 214 AREPN 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 AVERR 272 AVERW 273 AWAIT 274 AWORD 275 AXCHGB 276 AXCHGL 277 AXCHGW 278 AXLAT 279 AXORB 280 AXORL 281 AXORW 282 283 AFMOVB 284 AFMOVBP 285 AFMOVD 286 AFMOVDP 287 AFMOVF 288 AFMOVFP 289 AFMOVL 290 AFMOVLP 291 AFMOVV 292 AFMOVVP 293 AFMOVW 294 AFMOVWP 295 AFMOVX 296 AFMOVXP 297 298 AFCOMD 299 AFCOMDP 300 AFCOMDPP 301 AFCOMF 302 AFCOMFP 303 AFCOML 304 AFCOMLP 305 AFCOMW 306 AFCOMWP 307 AFUCOM 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 // extra 32-bit operations 390 ACMPXCHGB 391 ACMPXCHGL 392 ACMPXCHGW 393 ACMPXCHG8B 394 ACPUID 395 AINVD 396 AINVLPG 397 ALFENCE 398 AMFENCE 399 AMOVNTIL 400 ARDMSR 401 ARDPMC 402 ARDTSC 403 ARSM 404 ASFENCE 405 ASYSRET 406 AWBINVD 407 AWRMSR 408 AXADDB 409 AXADDL 410 AXADDW 411 412 // conditional move 413 ACMOVLCC 414 ACMOVLCS 415 ACMOVLEQ 416 ACMOVLGE 417 ACMOVLGT 418 ACMOVLHI 419 ACMOVLLE 420 ACMOVLLS 421 ACMOVLLT 422 ACMOVLMI 423 ACMOVLNE 424 ACMOVLOC 425 ACMOVLOS 426 ACMOVLPC 427 ACMOVLPL 428 ACMOVLPS 429 ACMOVQCC 430 ACMOVQCS 431 ACMOVQEQ 432 ACMOVQGE 433 ACMOVQGT 434 ACMOVQHI 435 ACMOVQLE 436 ACMOVQLS 437 ACMOVQLT 438 ACMOVQMI 439 ACMOVQNE 440 ACMOVQOC 441 ACMOVQOS 442 ACMOVQPC 443 ACMOVQPL 444 ACMOVQPS 445 ACMOVWCC 446 ACMOVWCS 447 ACMOVWEQ 448 ACMOVWGE 449 ACMOVWGT 450 ACMOVWHI 451 ACMOVWLE 452 ACMOVWLS 453 ACMOVWLT 454 ACMOVWMI 455 ACMOVWNE 456 ACMOVWOC 457 ACMOVWOS 458 ACMOVWPC 459 ACMOVWPL 460 ACMOVWPS 461 462 // 64-bit 463 AADCQ 464 AADDQ 465 AANDQ 466 ABSFQ 467 ABSRQ 468 ABTCQ 469 ABTQ 470 ABTRQ 471 ABTSQ 472 ACMPQ 473 ACMPSQ 474 ACMPXCHGQ 475 ACQO 476 ADIVQ 477 AIDIVQ 478 AIMULQ 479 AIRETQ 480 AJCXZQ 481 ALEAQ 482 ALEAVEQ 483 ALODSQ 484 AMOVQ 485 AMOVLQSX 486 AMOVLQZX 487 AMOVNTIQ 488 AMOVSQ 489 AMULQ 490 ANEGQ 491 ANOTQ 492 AORQ 493 APOPFQ 494 APOPQ 495 APUSHFQ 496 APUSHQ 497 ARCLQ 498 ARCRQ 499 AROLQ 500 ARORQ 501 AQUAD 502 ASALQ 503 ASARQ 504 ASBBQ 505 ASCASQ 506 ASHLQ 507 ASHRQ 508 ASTOSQ 509 ASUBQ 510 ATESTQ 511 AXADDQ 512 AXCHGQ 513 AXORQ 514 AXGETBV 515 516 // media 517 AADDPD 518 AADDPS 519 AADDSD 520 AADDSS 521 AANDNL 522 AANDNQ 523 AANDNPD 524 AANDNPS 525 AANDPD 526 AANDPS 527 ABEXTRL 528 ABEXTRQ 529 ABLSIL 530 ABLSIQ 531 ABLSMSKL 532 ABLSMSKQ 533 ABLSRL 534 ABLSRQ 535 ABZHIL 536 ABZHIQ 537 ACMPPD 538 ACMPPS 539 ACMPSD 540 ACMPSS 541 ACOMISD 542 ACOMISS 543 ACVTPD2PL 544 ACVTPD2PS 545 ACVTPL2PD 546 ACVTPL2PS 547 ACVTPS2PD 548 ACVTPS2PL 549 ACVTSD2SL 550 ACVTSD2SQ 551 ACVTSD2SS 552 ACVTSL2SD 553 ACVTSL2SS 554 ACVTSQ2SD 555 ACVTSQ2SS 556 ACVTSS2SD 557 ACVTSS2SL 558 ACVTSS2SQ 559 ACVTTPD2PL 560 ACVTTPS2PL 561 ACVTTSD2SL 562 ACVTTSD2SQ 563 ACVTTSS2SL 564 ACVTTSS2SQ 565 ADIVPD 566 ADIVPS 567 ADIVSD 568 ADIVSS 569 AEMMS 570 AFXRSTOR 571 AFXRSTOR64 572 AFXSAVE 573 AFXSAVE64 574 ALDDQU 575 ALDMXCSR 576 AMASKMOVOU 577 AMASKMOVQ 578 AMAXPD 579 AMAXPS 580 AMAXSD 581 AMAXSS 582 AMINPD 583 AMINPS 584 AMINSD 585 AMINSS 586 AMOVAPD 587 AMOVAPS 588 AMOVOU 589 AMOVHLPS 590 AMOVHPD 591 AMOVHPS 592 AMOVLHPS 593 AMOVLPD 594 AMOVLPS 595 AMOVMSKPD 596 AMOVMSKPS 597 AMOVNTO 598 AMOVNTPD 599 AMOVNTPS 600 AMOVNTQ 601 AMOVO 602 AMOVQOZX 603 AMOVSD 604 AMOVSS 605 AMOVUPD 606 AMOVUPS 607 AMULPD 608 AMULPS 609 AMULSD 610 AMULSS 611 AMULXL 612 AMULXQ 613 AORPD 614 AORPS 615 APACKSSLW 616 APACKSSWB 617 APACKUSWB 618 APADDB 619 APADDL 620 APADDQ 621 APADDSB 622 APADDSW 623 APADDUSB 624 APADDUSW 625 APADDW 626 APAND 627 APANDN 628 APAVGB 629 APAVGW 630 APCMPEQB 631 APCMPEQL 632 APCMPEQW 633 APCMPGTB 634 APCMPGTL 635 APCMPGTW 636 APDEPL 637 APDEPQ 638 APEXTL 639 APEXTQ 640 APEXTRB 641 APEXTRD 642 APEXTRQ 643 APEXTRW 644 APHADDD 645 APHADDSW 646 APHADDW 647 APHMINPOSUW 648 APHSUBD 649 APHSUBSW 650 APHSUBW 651 APINSRB 652 APINSRD 653 APINSRQ 654 APINSRW 655 APMADDWL 656 APMAXSW 657 APMAXUB 658 APMINSW 659 APMINUB 660 APMOVMSKB 661 APMOVSXBD 662 APMOVSXBQ 663 APMOVSXBW 664 APMOVSXDQ 665 APMOVSXWD 666 APMOVSXWQ 667 APMOVZXBD 668 APMOVZXBQ 669 APMOVZXBW 670 APMOVZXDQ 671 APMOVZXWD 672 APMOVZXWQ 673 APMULDQ 674 APMULHUW 675 APMULHW 676 APMULLD 677 APMULLW 678 APMULULQ 679 APOR 680 APSADBW 681 APSHUFB 682 APSHUFHW 683 APSHUFL 684 APSHUFLW 685 APSHUFW 686 APSLLL 687 APSLLO 688 APSLLQ 689 APSLLW 690 APSRAL 691 APSRAW 692 APSRLL 693 APSRLO 694 APSRLQ 695 APSRLW 696 APSUBB 697 APSUBL 698 APSUBQ 699 APSUBSB 700 APSUBSW 701 APSUBUSB 702 APSUBUSW 703 APSUBW 704 APUNPCKHBW 705 APUNPCKHLQ 706 APUNPCKHQDQ 707 APUNPCKHWL 708 APUNPCKLBW 709 APUNPCKLLQ 710 APUNPCKLQDQ 711 APUNPCKLWL 712 APXOR 713 ARCPPS 714 ARCPSS 715 ARSQRTPS 716 ARSQRTSS 717 ASARXL 718 ASARXQ 719 ASHLXL 720 ASHLXQ 721 ASHRXL 722 ASHRXQ 723 ASHUFPD 724 ASHUFPS 725 ASQRTPD 726 ASQRTPS 727 ASQRTSD 728 ASQRTSS 729 ASTMXCSR 730 ASUBPD 731 ASUBPS 732 ASUBSD 733 ASUBSS 734 AUCOMISD 735 AUCOMISS 736 AUNPCKHPD 737 AUNPCKHPS 738 AUNPCKLPD 739 AUNPCKLPS 740 AXORPD 741 AXORPS 742 APCMPESTRI 743 744 ARETFW 745 ARETFL 746 ARETFQ 747 ASWAPGS 748 749 AMODE 750 ACRC32B 751 ACRC32Q 752 AIMUL3Q 753 754 APREFETCHT0 755 APREFETCHT1 756 APREFETCHT2 757 APREFETCHNTA 758 759 AMOVQL 760 ABSWAPL 761 ABSWAPQ 762 763 AAESENC 764 AAESENCLAST 765 AAESDEC 766 AAESDECLAST 767 AAESIMC 768 AAESKEYGENASSIST 769 770 AROUNDPS 771 AROUNDSS 772 AROUNDPD 773 AROUNDSD 774 AMOVDDUP 775 AMOVSHDUP 776 AMOVSLDUP 777 778 APSHUFD 779 APCLMULQDQ 780 781 AVZEROUPPER 782 AVMOVDQU 783 AVMOVNTDQ 784 AVMOVDQA 785 AVPCMPEQB 786 AVPXOR 787 AVPMOVMSKB 788 AVPAND 789 AVPTEST 790 AVPBROADCASTB 791 AVPSHUFB 792 AVPSHUFD 793 AVPERM2F128 794 AVPALIGNR 795 AVPADDQ 796 AVPADDD 797 AVPSRLDQ 798 AVPSLLDQ 799 AVPSRLQ 800 AVPSLLQ 801 AVPSRLD 802 AVPSLLD 803 AVPOR 804 AVPBLENDD 805 AVINSERTI128 806 AVPERM2I128 807 ARORXL 808 ARORXQ 809 AVBROADCASTSS 810 AVBROADCASTSD 811 AVMOVDDUP 812 AVMOVSHDUP 813 AVMOVSLDUP 814 815 // from 386 816 AJCXZW 817 AFCMOVCC 818 AFCMOVCS 819 AFCMOVEQ 820 AFCMOVHI 821 AFCMOVLS 822 AFCMOVNE 823 AFCMOVNU 824 AFCMOVUN 825 AFCOMI 826 AFCOMIP 827 AFUCOMI 828 AFUCOMIP 829 830 // TSX 831 AXACQUIRE 832 AXRELEASE 833 AXBEGIN 834 AXEND 835 AXABORT 836 AXTEST 837 838 ALAST 839 ) 840 841 const ( 842 REG_NONE = 0 843 ) 844 845 const ( 846 REG_AL = obj.RBaseAMD64 + iota 847 REG_CL 848 REG_DL 849 REG_BL 850 REG_SPB 851 REG_BPB 852 REG_SIB 853 REG_DIB 854 REG_R8B 855 REG_R9B 856 REG_R10B 857 REG_R11B 858 REG_R12B 859 REG_R13B 860 REG_R14B 861 REG_R15B 862 863 REG_AX 864 REG_CX 865 REG_DX 866 REG_BX 867 REG_SP 868 REG_BP 869 REG_SI 870 REG_DI 871 REG_R8 872 REG_R9 873 REG_R10 874 REG_R11 875 REG_R12 876 REG_R13 877 REG_R14 878 REG_R15 879 880 REG_AH 881 REG_CH 882 REG_DH 883 REG_BH 884 885 REG_F0 886 REG_F1 887 REG_F2 888 REG_F3 889 REG_F4 890 REG_F5 891 REG_F6 892 REG_F7 893 894 REG_M0 895 REG_M1 896 REG_M2 897 REG_M3 898 REG_M4 899 REG_M5 900 REG_M6 901 REG_M7 902 903 REG_X0 904 REG_X1 905 REG_X2 906 REG_X3 907 REG_X4 908 REG_X5 909 REG_X6 910 REG_X7 911 REG_X8 912 REG_X9 913 REG_X10 914 REG_X11 915 REG_X12 916 REG_X13 917 REG_X14 918 REG_X15 919 920 REG_Y0 921 REG_Y1 922 REG_Y2 923 REG_Y3 924 REG_Y4 925 REG_Y5 926 REG_Y6 927 REG_Y7 928 REG_Y8 929 REG_Y9 930 REG_Y10 931 REG_Y11 932 REG_Y12 933 REG_Y13 934 REG_Y14 935 REG_Y15 936 937 REG_CS 938 REG_SS 939 REG_DS 940 REG_ES 941 REG_FS 942 REG_GS 943 944 REG_GDTR /* global descriptor table register */ 945 REG_IDTR /* interrupt descriptor table register */ 946 REG_LDTR /* local descriptor table register */ 947 REG_MSW /* machine status word */ 948 REG_TASK /* task register */ 949 950 REG_CR0 951 REG_CR1 952 REG_CR2 953 REG_CR3 954 REG_CR4 955 REG_CR5 956 REG_CR6 957 REG_CR7 958 REG_CR8 959 REG_CR9 960 REG_CR10 961 REG_CR11 962 REG_CR12 963 REG_CR13 964 REG_CR14 965 REG_CR15 966 967 REG_DR0 968 REG_DR1 969 REG_DR2 970 REG_DR3 971 REG_DR4 972 REG_DR5 973 REG_DR6 974 REG_DR7 975 976 REG_TR0 977 REG_TR1 978 REG_TR2 979 REG_TR3 980 REG_TR4 981 REG_TR5 982 REG_TR6 983 REG_TR7 984 985 REG_TLS 986 987 MAXREG 988 989 REG_CR = REG_CR0 990 REG_DR = REG_DR0 991 REG_TR = REG_TR0 992 993 REGARG = -1 994 REGRET = REG_AX 995 FREGRET = REG_X0 996 REGSP = REG_SP 997 REGCTXT = REG_DX 998 REGEXT = REG_R15 /* compiler allocates external registers R15 down */ 999 FREGMIN = REG_X0 + 5 /* first register variable */ 1000 FREGEXT = REG_X0 + 15 /* first external register */ 1001 T_TYPE = 1 << 0 1002 T_INDEX = 1 << 1 1003 T_OFFSET = 1 << 2 1004 T_FCONST = 1 << 3 1005 T_SYM = 1 << 4 1006 T_SCONST = 1 << 5 1007 T_64 = 1 << 6 1008 T_GOTYPE = 1 << 7 1009 )