github.com/mattn/go@v0.0.0-20171011075504-07f7db3ea99f/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 ACLFLUSH 80 ACLI 81 ACLTS 82 ACMC 83 ACMPB 84 ACMPL 85 ACMPW 86 ACMPSB 87 ACMPSL 88 ACMPSW 89 ADAA 90 ADAS 91 ADECB 92 ADECL 93 ADECQ 94 ADECW 95 ADIVB 96 ADIVL 97 ADIVW 98 AENTER 99 AHADDPD 100 AHADDPS 101 AHLT 102 AHSUBPD 103 AHSUBPS 104 AIDIVB 105 AIDIVL 106 AIDIVW 107 AIMULB 108 AIMULL 109 AIMULW 110 AINB 111 AINL 112 AINW 113 AINCB 114 AINCL 115 AINCQ 116 AINCW 117 AINSB 118 AINSL 119 AINSERTPS 120 AINSW 121 AINT 122 AINTO 123 AIRETL 124 AIRETW 125 AJCC // >= unsigned 126 AJCS // < unsigned 127 AJCXZL 128 AJEQ // == (zero) 129 AJGE // >= signed 130 AJGT // > signed 131 AJHI // > unsigned 132 AJLE // <= signed 133 AJLS // <= unsigned 134 AJLT // < signed 135 AJMI // sign bit set (negative) 136 AJNE // != (nonzero) 137 AJOC // overflow clear 138 AJOS // overflow set 139 AJPC // parity clear 140 AJPL // sign bit clear (positive) 141 AJPS // parity set 142 ALAHF 143 ALARL 144 ALARW 145 ALEAL 146 ALEAW 147 ALEAVEL 148 ALEAVEW 149 ALOCK 150 ALODSB 151 ALODSL 152 ALODSW 153 ALONG 154 ALOOP 155 ALOOPEQ 156 ALOOPNE 157 ALSLL 158 ALSLW 159 AMOVB 160 AMOVL 161 AMOVW 162 AMOVBLSX 163 AMOVBLZX 164 AMOVBQSX 165 AMOVBQZX 166 AMOVBWSX 167 AMOVBWZX 168 AMOVWLSX 169 AMOVWLZX 170 AMOVWQSX 171 AMOVWQZX 172 AMOVSB 173 AMOVSL 174 AMOVSW 175 AMPSADBW 176 AMULB 177 AMULL 178 AMULW 179 ANEGB 180 ANEGL 181 ANEGW 182 ANOTB 183 ANOTL 184 ANOTW 185 AORB 186 AORL 187 AORW 188 AOUTB 189 AOUTL 190 AOUTW 191 AOUTSB 192 AOUTSL 193 AOUTSW 194 APABSB 195 APABSD 196 APABSW 197 APAUSE 198 APOPAL 199 APOPAW 200 APOPCNTW 201 APOPCNTL 202 APOPCNTQ 203 APOPFL 204 APOPFW 205 APOPL 206 APOPW 207 APUSHAL 208 APUSHAW 209 APUSHFL 210 APUSHFW 211 APUSHL 212 APUSHW 213 ARCLB 214 ARCLL 215 ARCLW 216 ARCRB 217 ARCRL 218 ARCRW 219 AREP 220 AREPN 221 AROLB 222 AROLL 223 AROLW 224 ARORB 225 ARORL 226 ARORW 227 ASAHF 228 ASALB 229 ASALL 230 ASALW 231 ASARB 232 ASARL 233 ASARW 234 ASBBB 235 ASBBL 236 ASBBW 237 ASCASB 238 ASCASL 239 ASCASW 240 ASETCC 241 ASETCS 242 ASETEQ 243 ASETGE 244 ASETGT 245 ASETHI 246 ASETLE 247 ASETLS 248 ASETLT 249 ASETMI 250 ASETNE 251 ASETOC 252 ASETOS 253 ASETPC 254 ASETPL 255 ASETPS 256 ACDQ 257 ACWD 258 ASHLB 259 ASHLL 260 ASHLW 261 ASHRB 262 ASHRL 263 ASHRW 264 ASTC 265 ASTD 266 ASTI 267 ASTOSB 268 ASTOSL 269 ASTOSW 270 ASUBB 271 ASUBL 272 ASUBW 273 ASYSCALL 274 ATESTB 275 ATESTL 276 ATESTW 277 AVERR 278 AVERW 279 AWAIT 280 AWORD 281 AXCHGB 282 AXCHGL 283 AXCHGW 284 AXLAT 285 AXORB 286 AXORL 287 AXORW 288 289 AFMOVB 290 AFMOVBP 291 AFMOVD 292 AFMOVDP 293 AFMOVF 294 AFMOVFP 295 AFMOVL 296 AFMOVLP 297 AFMOVV 298 AFMOVVP 299 AFMOVW 300 AFMOVWP 301 AFMOVX 302 AFMOVXP 303 304 AFCOMD 305 AFCOMDP 306 AFCOMDPP 307 AFCOMF 308 AFCOMFP 309 AFCOML 310 AFCOMLP 311 AFCOMW 312 AFCOMWP 313 AFUCOM 314 AFUCOMP 315 AFUCOMPP 316 317 AFADDDP 318 AFADDW 319 AFADDL 320 AFADDF 321 AFADDD 322 323 AFMULDP 324 AFMULW 325 AFMULL 326 AFMULF 327 AFMULD 328 329 AFSUBDP 330 AFSUBW 331 AFSUBL 332 AFSUBF 333 AFSUBD 334 335 AFSUBRDP 336 AFSUBRW 337 AFSUBRL 338 AFSUBRF 339 AFSUBRD 340 341 AFDIVDP 342 AFDIVW 343 AFDIVL 344 AFDIVF 345 AFDIVD 346 347 AFDIVRDP 348 AFDIVRW 349 AFDIVRL 350 AFDIVRF 351 AFDIVRD 352 353 AFXCHD 354 AFFREE 355 356 AFLDCW 357 AFLDENV 358 AFRSTOR 359 AFSAVE 360 AFSTCW 361 AFSTENV 362 AFSTSW 363 364 AF2XM1 365 AFABS 366 AFCHS 367 AFCLEX 368 AFCOS 369 AFDECSTP 370 AFINCSTP 371 AFINIT 372 AFLD1 373 AFLDL2E 374 AFLDL2T 375 AFLDLG2 376 AFLDLN2 377 AFLDPI 378 AFLDZ 379 AFNOP 380 AFPATAN 381 AFPREM 382 AFPREM1 383 AFPTAN 384 AFRNDINT 385 AFSCALE 386 AFSIN 387 AFSINCOS 388 AFSQRT 389 AFTST 390 AFXAM 391 AFXTRACT 392 AFYL2X 393 AFYL2XP1 394 395 // extra 32-bit operations 396 ACMPXCHGB 397 ACMPXCHGL 398 ACMPXCHGW 399 ACMPXCHG8B 400 ACPUID 401 AINVD 402 AINVLPG 403 ALFENCE 404 AMFENCE 405 AMOVNTIL 406 ARDMSR 407 ARDPMC 408 ARDTSC 409 ARSM 410 ASFENCE 411 ASYSRET 412 AWBINVD 413 AWRMSR 414 AXADDB 415 AXADDL 416 AXADDW 417 418 // conditional move 419 ACMOVLCC 420 ACMOVLCS 421 ACMOVLEQ 422 ACMOVLGE 423 ACMOVLGT 424 ACMOVLHI 425 ACMOVLLE 426 ACMOVLLS 427 ACMOVLLT 428 ACMOVLMI 429 ACMOVLNE 430 ACMOVLOC 431 ACMOVLOS 432 ACMOVLPC 433 ACMOVLPL 434 ACMOVLPS 435 ACMOVQCC 436 ACMOVQCS 437 ACMOVQEQ 438 ACMOVQGE 439 ACMOVQGT 440 ACMOVQHI 441 ACMOVQLE 442 ACMOVQLS 443 ACMOVQLT 444 ACMOVQMI 445 ACMOVQNE 446 ACMOVQOC 447 ACMOVQOS 448 ACMOVQPC 449 ACMOVQPL 450 ACMOVQPS 451 ACMOVWCC 452 ACMOVWCS 453 ACMOVWEQ 454 ACMOVWGE 455 ACMOVWGT 456 ACMOVWHI 457 ACMOVWLE 458 ACMOVWLS 459 ACMOVWLT 460 ACMOVWMI 461 ACMOVWNE 462 ACMOVWOC 463 ACMOVWOS 464 ACMOVWPC 465 ACMOVWPL 466 ACMOVWPS 467 468 // 64-bit 469 AADCQ 470 AADDQ 471 AANDQ 472 ABSFQ 473 ABSRQ 474 ABTCQ 475 ABTQ 476 ABTRQ 477 ABTSQ 478 ACMPQ 479 ACMPSQ 480 ACMPXCHGQ 481 ACQO 482 ADIVQ 483 AIDIVQ 484 AIMULQ 485 AIRETQ 486 AJCXZQ 487 ALEAQ 488 ALEAVEQ 489 ALODSQ 490 AMOVQ 491 AMOVLQSX 492 AMOVLQZX 493 AMOVNTIQ 494 AMOVSQ 495 AMULQ 496 ANEGQ 497 ANOTQ 498 AORQ 499 APOPFQ 500 APOPQ 501 APUSHFQ 502 APUSHQ 503 ARCLQ 504 ARCRQ 505 AROLQ 506 ARORQ 507 AQUAD 508 ASALQ 509 ASARQ 510 ASBBQ 511 ASCASQ 512 ASHLQ 513 ASHRQ 514 ASTOSQ 515 ASUBQ 516 ATESTQ 517 AXADDQ 518 AXCHGQ 519 AXORQ 520 AXGETBV 521 522 // media 523 AADDPD 524 AADDPS 525 AADDSD 526 AADDSS 527 AADDSUBPD 528 AADDSUBPS 529 AANDNL 530 AANDNQ 531 AANDNPD 532 AANDNPS 533 AANDPD 534 AANDPS 535 ABEXTRL 536 ABEXTRQ 537 ABLENDPD 538 ABLENDPS 539 ABLSIL 540 ABLSIQ 541 ABLSMSKL 542 ABLSMSKQ 543 ABLSRL 544 ABLSRQ 545 ABZHIL 546 ABZHIQ 547 ACMPPD 548 ACMPPS 549 ACMPSD 550 ACMPSS 551 ACOMISD 552 ACOMISS 553 ACVTPD2PL 554 ACVTPD2PS 555 ACVTPL2PD 556 ACVTPL2PS 557 ACVTPS2PD 558 ACVTPS2PL 559 ACVTSD2SL 560 ACVTSD2SQ 561 ACVTSD2SS 562 ACVTSL2SD 563 ACVTSL2SS 564 ACVTSQ2SD 565 ACVTSQ2SS 566 ACVTSS2SD 567 ACVTSS2SL 568 ACVTSS2SQ 569 ACVTTPD2PL 570 ACVTTPS2PL 571 ACVTTSD2SL 572 ACVTTSD2SQ 573 ACVTTSS2SL 574 ACVTTSS2SQ 575 ADIVPD 576 ADIVPS 577 ADIVSD 578 ADIVSS 579 ADPPD 580 ADPPS 581 AEMMS 582 AEXTRACTPS 583 AFXRSTOR 584 AFXRSTOR64 585 AFXSAVE 586 AFXSAVE64 587 ALDDQU 588 ALDMXCSR 589 AMASKMOVOU 590 AMASKMOVQ 591 AMAXPD 592 AMAXPS 593 AMAXSD 594 AMAXSS 595 AMINPD 596 AMINPS 597 AMINSD 598 AMINSS 599 AMOVAPD 600 AMOVAPS 601 AMOVOU 602 AMOVHLPS 603 AMOVHPD 604 AMOVHPS 605 AMOVLHPS 606 AMOVLPD 607 AMOVLPS 608 AMOVMSKPD 609 AMOVMSKPS 610 AMOVNTO 611 AMOVNTDQA 612 AMOVNTPD 613 AMOVNTPS 614 AMOVNTQ 615 AMOVO 616 AMOVQOZX 617 AMOVSD 618 AMOVSS 619 AMOVUPD 620 AMOVUPS 621 AMULPD 622 AMULPS 623 AMULSD 624 AMULSS 625 AMULXL 626 AMULXQ 627 AORPD 628 AORPS 629 APACKSSLW 630 APACKSSWB 631 APACKUSDW 632 APACKUSWB 633 APADDB 634 APADDL 635 APADDQ 636 APADDSB 637 APADDSW 638 APADDUSB 639 APADDUSW 640 APADDW 641 APALIGNR 642 APAND 643 APANDN 644 APAVGB 645 APAVGW 646 APBLENDW 647 APCMPEQB 648 APCMPEQL 649 APCMPEQQ 650 APCMPEQW 651 APCMPGTB 652 APCMPGTL 653 APCMPGTQ 654 APCMPGTW 655 APCMPISTRI 656 APCMPISTRM 657 APDEPL 658 APDEPQ 659 APEXTL 660 APEXTQ 661 APEXTRB 662 APEXTRD 663 APEXTRQ 664 APEXTRW 665 APHADDD 666 APHADDSW 667 APHADDW 668 APHMINPOSUW 669 APHSUBD 670 APHSUBSW 671 APHSUBW 672 APINSRB 673 APINSRD 674 APINSRQ 675 APINSRW 676 APMADDUBSW 677 APMADDWL 678 APMAXSB 679 APMAXSD 680 APMAXSW 681 APMAXUB 682 APMAXUD 683 APMAXUW 684 APMINSB 685 APMINSD 686 APMINSW 687 APMINUB 688 APMINUD 689 APMINUW 690 APMOVMSKB 691 APMOVSXBD 692 APMOVSXBQ 693 APMOVSXBW 694 APMOVSXDQ 695 APMOVSXWD 696 APMOVSXWQ 697 APMOVZXBD 698 APMOVZXBQ 699 APMOVZXBW 700 APMOVZXDQ 701 APMOVZXWD 702 APMOVZXWQ 703 APMULDQ 704 APMULHRSW 705 APMULHUW 706 APMULHW 707 APMULLD 708 APMULLW 709 APMULULQ 710 APOR 711 APSADBW 712 APSHUFB 713 APSHUFHW 714 APSHUFL 715 APSHUFLW 716 APSHUFW 717 APSIGNB 718 APSIGND 719 APSIGNW 720 APSLLL 721 APSLLO 722 APSLLQ 723 APSLLW 724 APSRAL 725 APSRAW 726 APSRLL 727 APSRLO 728 APSRLQ 729 APSRLW 730 APSUBB 731 APSUBL 732 APSUBQ 733 APSUBSB 734 APSUBSW 735 APSUBUSB 736 APSUBUSW 737 APSUBW 738 APTEST 739 APUNPCKHBW 740 APUNPCKHLQ 741 APUNPCKHQDQ 742 APUNPCKHWL 743 APUNPCKLBW 744 APUNPCKLLQ 745 APUNPCKLQDQ 746 APUNPCKLWL 747 APXOR 748 ARCPPS 749 ARCPSS 750 ARSQRTPS 751 ARSQRTSS 752 ASARXL 753 ASARXQ 754 ASHLXL 755 ASHLXQ 756 ASHRXL 757 ASHRXQ 758 ASHUFPD 759 ASHUFPS 760 ASQRTPD 761 ASQRTPS 762 ASQRTSD 763 ASQRTSS 764 ASTMXCSR 765 ASUBPD 766 ASUBPS 767 ASUBSD 768 ASUBSS 769 AUCOMISD 770 AUCOMISS 771 AUNPCKHPD 772 AUNPCKHPS 773 AUNPCKLPD 774 AUNPCKLPS 775 AXORPD 776 AXORPS 777 APCMPESTRI 778 APCMPESTRM 779 780 ARETFW 781 ARETFL 782 ARETFQ 783 ASWAPGS 784 785 ACRC32B 786 ACRC32Q 787 AIMUL3Q 788 789 APREFETCHT0 790 APREFETCHT1 791 APREFETCHT2 792 APREFETCHNTA 793 794 AMOVQL 795 ABSWAPL 796 ABSWAPQ 797 798 AAESENC 799 AAESENCLAST 800 AAESDEC 801 AAESDECLAST 802 AAESIMC 803 AAESKEYGENASSIST 804 805 AROUNDPS 806 AROUNDSS 807 AROUNDPD 808 AROUNDSD 809 AMOVDDUP 810 AMOVSHDUP 811 AMOVSLDUP 812 813 APSHUFD 814 APCLMULQDQ 815 816 AVZEROUPPER 817 AVMOVDQU 818 AVMOVNTDQ 819 AVMOVDQA 820 AVPCMPEQB 821 AVPXOR 822 AVPMOVMSKB 823 AVPAND 824 AVPTEST 825 AVPBROADCASTB 826 AVPSHUFB 827 AVPSHUFD 828 AVPERM2F128 829 AVPALIGNR 830 AVPADDQ 831 AVPADDD 832 AVPSRLDQ 833 AVPSLLDQ 834 AVPSRLQ 835 AVPSLLQ 836 AVPSRLD 837 AVPSLLD 838 AVPOR 839 AVPBLENDD 840 AVINSERTI128 841 AVPERM2I128 842 ARORXL 843 ARORXQ 844 AVADDSD 845 AVBROADCASTSS 846 AVBROADCASTSD 847 AVFMADD213SD 848 AVFMADD231SD 849 AVFNMADD213SD 850 AVFNMADD231SD 851 AVMOVDDUP 852 AVMOVSHDUP 853 AVMOVSLDUP 854 AVSUBSD 855 856 // from 386 857 AJCXZW 858 AFCMOVCC 859 AFCMOVCS 860 AFCMOVEQ 861 AFCMOVHI 862 AFCMOVLS 863 AFCMOVNE 864 AFCMOVNU 865 AFCMOVUN 866 AFCOMI 867 AFCOMIP 868 AFUCOMI 869 AFUCOMIP 870 871 // TSX 872 AXACQUIRE 873 AXRELEASE 874 AXBEGIN 875 AXEND 876 AXABORT 877 AXTEST 878 879 ALAST 880 ) 881 882 const ( 883 REG_NONE = 0 884 ) 885 886 const ( 887 REG_AL = obj.RBaseAMD64 + iota 888 REG_CL 889 REG_DL 890 REG_BL 891 REG_SPB 892 REG_BPB 893 REG_SIB 894 REG_DIB 895 REG_R8B 896 REG_R9B 897 REG_R10B 898 REG_R11B 899 REG_R12B 900 REG_R13B 901 REG_R14B 902 REG_R15B 903 904 REG_AX 905 REG_CX 906 REG_DX 907 REG_BX 908 REG_SP 909 REG_BP 910 REG_SI 911 REG_DI 912 REG_R8 913 REG_R9 914 REG_R10 915 REG_R11 916 REG_R12 917 REG_R13 918 REG_R14 919 REG_R15 920 921 REG_AH 922 REG_CH 923 REG_DH 924 REG_BH 925 926 REG_F0 927 REG_F1 928 REG_F2 929 REG_F3 930 REG_F4 931 REG_F5 932 REG_F6 933 REG_F7 934 935 REG_M0 936 REG_M1 937 REG_M2 938 REG_M3 939 REG_M4 940 REG_M5 941 REG_M6 942 REG_M7 943 944 REG_X0 945 REG_X1 946 REG_X2 947 REG_X3 948 REG_X4 949 REG_X5 950 REG_X6 951 REG_X7 952 REG_X8 953 REG_X9 954 REG_X10 955 REG_X11 956 REG_X12 957 REG_X13 958 REG_X14 959 REG_X15 960 961 REG_Y0 962 REG_Y1 963 REG_Y2 964 REG_Y3 965 REG_Y4 966 REG_Y5 967 REG_Y6 968 REG_Y7 969 REG_Y8 970 REG_Y9 971 REG_Y10 972 REG_Y11 973 REG_Y12 974 REG_Y13 975 REG_Y14 976 REG_Y15 977 978 REG_CS 979 REG_SS 980 REG_DS 981 REG_ES 982 REG_FS 983 REG_GS 984 985 REG_GDTR /* global descriptor table register */ 986 REG_IDTR /* interrupt descriptor table register */ 987 REG_LDTR /* local descriptor table register */ 988 REG_MSW /* machine status word */ 989 REG_TASK /* task register */ 990 991 REG_CR0 992 REG_CR1 993 REG_CR2 994 REG_CR3 995 REG_CR4 996 REG_CR5 997 REG_CR6 998 REG_CR7 999 REG_CR8 1000 REG_CR9 1001 REG_CR10 1002 REG_CR11 1003 REG_CR12 1004 REG_CR13 1005 REG_CR14 1006 REG_CR15 1007 1008 REG_DR0 1009 REG_DR1 1010 REG_DR2 1011 REG_DR3 1012 REG_DR4 1013 REG_DR5 1014 REG_DR6 1015 REG_DR7 1016 1017 REG_TR0 1018 REG_TR1 1019 REG_TR2 1020 REG_TR3 1021 REG_TR4 1022 REG_TR5 1023 REG_TR6 1024 REG_TR7 1025 1026 REG_TLS 1027 1028 MAXREG 1029 1030 REG_CR = REG_CR0 1031 REG_DR = REG_DR0 1032 REG_TR = REG_TR0 1033 1034 REGARG = -1 1035 REGRET = REG_AX 1036 FREGRET = REG_X0 1037 REGSP = REG_SP 1038 REGCTXT = REG_DX 1039 REGEXT = REG_R15 /* compiler allocates external registers R15 down */ 1040 FREGMIN = REG_X0 + 5 /* first register variable */ 1041 FREGEXT = REG_X0 + 15 /* first external register */ 1042 T_TYPE = 1 << 0 1043 T_INDEX = 1 << 1 1044 T_OFFSET = 1 << 2 1045 T_FCONST = 1 << 3 1046 T_SYM = 1 << 4 1047 T_SCONST = 1 << 5 1048 T_64 = 1 << 6 1049 T_GOTYPE = 1 << 7 1050 ) 1051 1052 // https://www.uclibc.org/docs/psABI-x86_64.pdf, figure 3.36 1053 var AMD64DWARFRegisters = map[int16]int16{ 1054 REG_AX: 0, 1055 REG_DX: 1, 1056 REG_CX: 2, 1057 REG_BX: 3, 1058 REG_SI: 4, 1059 REG_DI: 5, 1060 REG_BP: 6, 1061 REG_SP: 7, 1062 REG_R8: 8, 1063 REG_R9: 9, 1064 REG_R10: 10, 1065 REG_R11: 11, 1066 REG_R12: 12, 1067 REG_R13: 13, 1068 REG_R14: 14, 1069 REG_R15: 15, 1070 // 16 is "Return Address RA", whatever that is. 1071 // XMM registers. %xmmN => XN. 1072 REG_X0: 17, 1073 REG_X1: 18, 1074 REG_X2: 19, 1075 REG_X3: 20, 1076 REG_X4: 21, 1077 REG_X5: 22, 1078 REG_X6: 23, 1079 REG_X7: 24, 1080 REG_X8: 25, 1081 REG_X9: 26, 1082 REG_X10: 27, 1083 REG_X11: 28, 1084 REG_X12: 29, 1085 REG_X13: 30, 1086 REG_X14: 31, 1087 REG_X15: 32, 1088 // ST registers. %stN => FN. 1089 REG_F0: 33, 1090 REG_F1: 34, 1091 REG_F2: 35, 1092 REG_F3: 36, 1093 REG_F4: 37, 1094 REG_F5: 38, 1095 REG_F6: 39, 1096 REG_F7: 40, 1097 // MMX registers. %mmN => MN. 1098 REG_M0: 41, 1099 REG_M1: 42, 1100 REG_M2: 43, 1101 REG_M3: 44, 1102 REG_M4: 45, 1103 REG_M5: 46, 1104 REG_M6: 47, 1105 REG_M7: 48, 1106 // 48 is flags, which doesn't have a name. 1107 REG_ES: 50, 1108 REG_CS: 51, 1109 REG_SS: 52, 1110 REG_DS: 53, 1111 REG_FS: 54, 1112 REG_GS: 55, 1113 // 58 and 59 are {fs,gs}base, which don't have names. 1114 REG_TR: 62, 1115 REG_LDTR: 63, 1116 // 64-66 are mxcsr, fcw, fsw, which don't have names. 1117 } 1118 1119 // https://www.uclibc.org/docs/psABI-i386.pdf, table 2.14 1120 var X86DWARFRegisters = map[int16]int16{ 1121 REG_AX: 0, 1122 REG_CX: 1, 1123 REG_DX: 2, 1124 REG_BX: 3, 1125 REG_SP: 4, 1126 REG_BP: 5, 1127 REG_SI: 6, 1128 REG_DI: 7, 1129 // 8 is "Return Address RA", whatever that is. 1130 // 9 is flags, which doesn't have a name. 1131 // ST registers. %stN => FN. 1132 REG_F0: 11, 1133 REG_F1: 12, 1134 REG_F2: 13, 1135 REG_F3: 14, 1136 REG_F4: 15, 1137 REG_F5: 16, 1138 REG_F6: 17, 1139 REG_F7: 18, 1140 // XMM registers. %xmmN => XN. 1141 REG_X0: 21, 1142 REG_X1: 22, 1143 REG_X2: 23, 1144 REG_X3: 24, 1145 REG_X4: 25, 1146 REG_X5: 26, 1147 REG_X6: 27, 1148 REG_X7: 28, 1149 // MMX registers. %mmN => MN. 1150 REG_M0: 29, 1151 REG_M1: 30, 1152 REG_M2: 31, 1153 REG_M3: 32, 1154 REG_M4: 33, 1155 REG_M5: 34, 1156 REG_M6: 35, 1157 REG_M7: 36, 1158 // 39 is mxcsr, which doesn't have a name. 1159 REG_ES: 40, 1160 REG_CS: 41, 1161 REG_SS: 42, 1162 REG_DS: 43, 1163 REG_FS: 44, 1164 REG_GS: 45, 1165 REG_TR: 48, 1166 REG_LDTR: 49, 1167 }