github.com/miolini/go@v0.0.0-20160405192216-fca68c8cb408/src/cmd/internal/obj/x86/a.out.go (about) 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 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 ARETFW 743 ARETFL 744 ARETFQ 745 ASWAPGS 746 747 AMODE 748 ACRC32B 749 ACRC32Q 750 AIMUL3Q 751 752 APREFETCHT0 753 APREFETCHT1 754 APREFETCHT2 755 APREFETCHNTA 756 757 AMOVQL 758 ABSWAPL 759 ABSWAPQ 760 761 AAESENC 762 AAESENCLAST 763 AAESDEC 764 AAESDECLAST 765 AAESIMC 766 AAESKEYGENASSIST 767 768 AROUNDPS 769 AROUNDSS 770 AROUNDPD 771 AROUNDSD 772 773 APSHUFD 774 APCLMULQDQ 775 776 AVZEROUPPER 777 AVMOVDQU 778 AVMOVNTDQ 779 AVMOVDQA 780 AVPCMPEQB 781 AVPXOR 782 AVPMOVMSKB 783 AVPAND 784 AVPTEST 785 AVPBROADCASTB 786 787 // from 386 788 AJCXZW 789 AFCMOVCC 790 AFCMOVCS 791 AFCMOVEQ 792 AFCMOVHI 793 AFCMOVLS 794 AFCMOVNE 795 AFCMOVNU 796 AFCMOVUN 797 AFCOMI 798 AFCOMIP 799 AFUCOMI 800 AFUCOMIP 801 802 // TSX 803 AXACQUIRE 804 AXRELEASE 805 AXBEGIN 806 AXEND 807 AXABORT 808 AXTEST 809 810 ALAST 811 ) 812 813 const ( 814 REG_NONE = 0 815 ) 816 817 const ( 818 REG_AL = obj.RBaseAMD64 + iota 819 REG_CL 820 REG_DL 821 REG_BL 822 REG_SPB 823 REG_BPB 824 REG_SIB 825 REG_DIB 826 REG_R8B 827 REG_R9B 828 REG_R10B 829 REG_R11B 830 REG_R12B 831 REG_R13B 832 REG_R14B 833 REG_R15B 834 835 REG_AX 836 REG_CX 837 REG_DX 838 REG_BX 839 REG_SP 840 REG_BP 841 REG_SI 842 REG_DI 843 REG_R8 844 REG_R9 845 REG_R10 846 REG_R11 847 REG_R12 848 REG_R13 849 REG_R14 850 REG_R15 851 852 REG_AH 853 REG_CH 854 REG_DH 855 REG_BH 856 857 REG_F0 858 REG_F1 859 REG_F2 860 REG_F3 861 REG_F4 862 REG_F5 863 REG_F6 864 REG_F7 865 866 REG_M0 867 REG_M1 868 REG_M2 869 REG_M3 870 REG_M4 871 REG_M5 872 REG_M6 873 REG_M7 874 875 REG_X0 876 REG_X1 877 REG_X2 878 REG_X3 879 REG_X4 880 REG_X5 881 REG_X6 882 REG_X7 883 REG_X8 884 REG_X9 885 REG_X10 886 REG_X11 887 REG_X12 888 REG_X13 889 REG_X14 890 REG_X15 891 892 REG_Y0 893 REG_Y1 894 REG_Y2 895 REG_Y3 896 REG_Y4 897 REG_Y5 898 REG_Y6 899 REG_Y7 900 REG_Y8 901 REG_Y9 902 REG_Y10 903 REG_Y11 904 REG_Y12 905 REG_Y13 906 REG_Y14 907 REG_Y15 908 909 REG_CS 910 REG_SS 911 REG_DS 912 REG_ES 913 REG_FS 914 REG_GS 915 916 REG_GDTR /* global descriptor table register */ 917 REG_IDTR /* interrupt descriptor table register */ 918 REG_LDTR /* local descriptor table register */ 919 REG_MSW /* machine status word */ 920 REG_TASK /* task register */ 921 922 REG_CR0 923 REG_CR1 924 REG_CR2 925 REG_CR3 926 REG_CR4 927 REG_CR5 928 REG_CR6 929 REG_CR7 930 REG_CR8 931 REG_CR9 932 REG_CR10 933 REG_CR11 934 REG_CR12 935 REG_CR13 936 REG_CR14 937 REG_CR15 938 939 REG_DR0 940 REG_DR1 941 REG_DR2 942 REG_DR3 943 REG_DR4 944 REG_DR5 945 REG_DR6 946 REG_DR7 947 948 REG_TR0 949 REG_TR1 950 REG_TR2 951 REG_TR3 952 REG_TR4 953 REG_TR5 954 REG_TR6 955 REG_TR7 956 957 REG_TLS 958 959 MAXREG 960 961 REG_CR = REG_CR0 962 REG_DR = REG_DR0 963 REG_TR = REG_TR0 964 965 REGARG = -1 966 REGRET = REG_AX 967 FREGRET = REG_X0 968 REGSP = REG_SP 969 REGCTXT = REG_DX 970 REGEXT = REG_R15 /* compiler allocates external registers R15 down */ 971 FREGMIN = REG_X0 + 5 /* first register variable */ 972 FREGEXT = REG_X0 + 15 /* first external register */ 973 T_TYPE = 1 << 0 974 T_INDEX = 1 << 1 975 T_OFFSET = 1 << 2 976 T_FCONST = 1 << 3 977 T_SYM = 1 << 4 978 T_SCONST = 1 << 5 979 T_64 = 1 << 6 980 T_GOTYPE = 1 << 7 981 )