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