1 # RUN: llvm-mc --disassemble %s -triple=i686-linux-gnu-code16 | FileCheck %s 2 3 # CHECK: movl $305419896, %ebx 4 0x66 0xbb 0x78 0x56 0x34 0x12 5 6 # CHECK: pause 7 0xf3 0x90 8 9 # CHECK: sfence 10 0x0f 0xae 0xf8 11 12 # CHECK: lfence 13 0x0f 0xae 0xe8 14 15 # CHECK: mfence 16 0x0f 0xae 0xf0 17 18 # CHECK: stgi 19 0x0f 0x01 0xdc 20 21 # CHECK: clgi 22 0x0f 0x01 0xdd 23 24 # CHECK: rdtscp 25 0x0f 0x01 0xf9 26 27 # CHECK: movl %eax, 16(%ebp) 28 0x67 0x66 0x89 0x45 0x10 29 30 # CHECK: movl %eax, -16(%ebp) 31 0x67 0x66 0x89 0x45 0xf0 32 33 # CHECK: testb %bl, %cl 34 0x84 0xcb 35 36 # CHECK: cmpl %eax, %ebx 37 0x66 0x39 0xc3 38 39 # CHECK: addw %ax, %ax 40 0x01 0xc0 41 42 # CHECK: shrl %eax 43 0x66 0xd1 0xe8 44 45 # CHECK: shll %eax 46 0x66 0xd1 0xe0 47 48 # CHECK: shll %eax 49 0x66 0xd1 0xe0 50 51 # CHECK: movb 0, %al 52 0xa0 0x00 0x00 53 54 # CHECK: movw 0, %ax 55 0xa1 0x00 0x00 56 57 # CHECK: movl 0, %eax 58 0x66 0xa1 0x00 0x00 59 60 # CHECK: into 61 0xce 62 63 # CHECK: int3 64 0xcc 65 66 # CHECK: int $4 67 0xcd 0x04 68 69 # CHECK: int $127 70 0xcd 0x7f 71 72 # CHECK: pushfw 73 0x9c 74 75 # CHECK: pushfl 76 0x66 0x9c 77 78 # CHECK: popfw 79 0x9d 80 81 # CHECK: popfl 82 0x66 0x9d 83 84 # CHECK: retl 85 0x66 0xc3 86 87 # CHECK: cmoval %eax, %edx 88 0x66 0x0f 0x47 0xd0 89 90 # CHECK: cmovael %eax, %edx 91 0x66 0x0f 0x43 0xd0 92 93 # CHECK: cmovbel %eax, %edx 94 0x66 0x0f 0x46 0xd0 95 96 # CHECK: cmovbl %eax, %edx 97 0x66 0x0f 0x42 0xd0 98 99 # CHECK: cmovbw %bx, %bx 100 0x0f 0x42 0xdb 101 102 # CHECK: cmovbel %eax, %edx 103 0x66 0x0f 0x46 0xd0 104 105 # CHECK: cmovbl %eax, %edx 106 0x66 0x0f 0x42 0xd0 107 108 # CHECK: cmovel %eax, %edx 109 0x66 0x0f 0x44 0xd0 110 111 # CHECK: cmovgl %eax, %edx 112 0x66 0x0f 0x4f 0xd0 113 114 # CHECK: cmovgel %eax, %edx 115 0x66 0x0f 0x4d 0xd0 116 117 # CHECK: cmovll %eax, %edx 118 0x66 0x0f 0x4c 0xd0 119 120 # CHECK: cmovlel %eax, %edx 121 0x66 0x0f 0x4e 0xd0 122 123 # CHECK: cmovbel %eax, %edx 124 0x66 0x0f 0x46 0xd0 125 126 # CHECK: cmovnel %eax, %edx 127 0x66 0x0f 0x45 0xd0 128 129 # CHECK: cmovael %eax, %edx 130 0x66 0x0f 0x43 0xd0 131 132 # CHECK: cmoval %eax, %edx 133 0x66 0x0f 0x47 0xd0 134 135 # CHECK: cmovael %eax, %edx 136 0x66 0x0f 0x43 0xd0 137 138 # CHECK: cmovnel %eax, %edx 139 0x66 0x0f 0x45 0xd0 140 141 # CHECK: cmovlel %eax, %edx 142 0x66 0x0f 0x4e 0xd0 143 144 # CHECK: cmovgel %eax, %edx 145 0x66 0x0f 0x4d 0xd0 146 147 # CHECK: cmovnel %eax, %edx 148 0x66 0x0f 0x45 0xd0 149 150 # CHECK: cmovlel %eax, %edx 151 0x66 0x0f 0x4e 0xd0 152 153 # CHECK: cmovll %eax, %edx 154 0x66 0x0f 0x4c 0xd0 155 156 # CHECK: cmovgel %eax, %edx 157 0x66 0x0f 0x4d 0xd0 158 159 # CHECK: cmovgl %eax, %edx 160 0x66 0x0f 0x4f 0xd0 161 162 # CHECK: cmovnol %eax, %edx 163 0x66 0x0f 0x41 0xd0 164 165 # CHECK: cmovnpl %eax, %edx 166 0x66 0x0f 0x4b 0xd0 167 168 # CHECK: cmovnsl %eax, %edx 169 0x66 0x0f 0x49 0xd0 170 171 # CHECK: cmovnel %eax, %edx 172 0x66 0x0f 0x45 0xd0 173 174 # CHECK: cmovol %eax, %edx 175 0x66 0x0f 0x40 0xd0 176 177 # CHECK: cmovpl %eax, %edx 178 0x66 0x0f 0x4a 0xd0 179 180 # CHECK: cmovsl %eax, %edx 181 0x66 0x0f 0x48 0xd0 182 183 # CHECK: cmovel %eax, %edx 184 0x66 0x0f 0x44 0xd0 185 186 # CHECK: fmul %st(0) 187 0xd8 0xc8 188 189 # CHECK: fadd %st(0) 190 0xd8 0xc0 191 192 # CHECK: fsub %st(0) 193 0xd8 0xe0 194 195 # CHECK: fsubr %st(0) 196 0xd8 0xe8 197 198 # CHECK: fdivr %st(0) 199 0xd8 0xf8 200 201 # CHECK: fdiv %st(0) 202 0xd8 0xf0 203 204 # CHECK: movl %cs, %eax 205 0x66 0x8c 0xc8 206 207 # CHECK: movw %cs, %ax 208 0x8c 0xc8 209 210 # CHECK: movl %cs, (%eax) 211 0x67 0x66 0x8c 0x08 212 213 # CHECK: movw %cs, (%eax) 214 0x67 0x8c 0x08 215 216 # CHECK: movl %eax, %cs 217 0x66 0x8e 0xc8 218 219 # CHECK: movl (%eax), %cs 220 0x67 0x66 0x8e 0x08 221 222 # CHECK: movw (%eax), %cs 223 0x67 0x8e 0x08 224 225 # CHECKX: movl %cr0, %eax 226 0x0f 0x20 0xc0 227 228 # CHECKX: movl %cr1, %eax 229 0x0f 0x20 0xc8 230 231 # CHECKX: movl %cr2, %eax 232 0x0f 0x20 0xd0 233 234 # CHECKX: movl %cr3, %eax 235 0x0f 0x20 0xd8 236 237 # CHECKX: movl %cr4, %eax 238 0x0f 0x20 0xe0 239 240 # CHECKX: movl %dr0, %eax 241 0x0f 0x21 0xc0 242 243 # CHECKX: movl %dr1, %eax 244 0x0f 0x21 0xc8 245 246 # CHECKX: movl %dr1, %eax 247 0x0f 0x21 0xc8 248 249 # CHECKX: movl %dr2, %eax 250 0x0f 0x21 0xd0 251 252 # CHECKX: movl %dr3, %eax 253 0x0f 0x21 0xd8 254 255 # CHECKX: movl %dr4, %eax 256 0x0f 0x21 0xe0 257 258 # CHECKX: movl %dr5, %eax 259 0x0f 0x21 0xe8 260 261 # CHECKX: movl %dr6, %eax 262 0x0f 0x21 0xf0 263 264 # CHECKX: movl %dr7, %eax 265 0x0f 0x21 0xf8 266 267 # CHECK: wait 268 0x9b 269 270 # CHECK: movl %gs:124, %eax 271 0x65 0x66 0x8b 0x06 0x7c 0x00 272 273 # CHECK: pushaw 274 0x60 275 276 # CHECK: popaw 277 0x61 278 279 # CHECK: pushaw 280 0x60 281 282 # CHECK: popaw 283 0x61 284 285 # CHECK: pushal 286 0x66 0x60 287 288 # CHECK: popal 289 0x66 0x61 290 291 # CHECK: jmpw *8(%eax) 292 0x67 0xff 0x60 0x08 293 294 # CHECK: jmpl *8(%eax) 295 0x67 0x66 0xff 0x60 0x08 296 297 # CHECK: lcalll $2, $4660 298 0x66 0x9a 0x34 0x12 0x00 0x00 0x02 0x00 299 300 # CHECK: jcxz 301 0xe3 0x00 302 303 # CHECK: jecxz 304 0x67 0xe3 0x00 305 306 # CHECK: iretw 307 0xcf 308 309 # CHECK: iretw 310 0xcf 311 312 # CHECK: iretl 313 0x66 0xcf 314 315 # CHECK: sysretl 316 0x0f 0x07 317 318 # CHECK: sysretl 319 0x0f 0x07 320 321 # CHECK: testl -24(%ebp), %ecx 322 0x67 0x66 0x85 0x4d 0xe8 323 324 # CHECK: testl -24(%ebp), %ecx 325 0x67 0x66 0x85 0x4d 0xe8 326 327 # CHECK: pushw %cs 328 0x0e 329 330 # CHECK: pushw %ds 331 0x1e 332 333 # CHECK: pushw %ss 334 0x16 335 336 # CHECK: pushw %es 337 0x06 338 339 # CHECK: pushw %fs 340 0x0f 0xa0 341 342 # CHECK: pushw %gs 343 0x0f 0xa8 344 345 # CHECK: pushw %cs 346 0x0e 347 348 # CHECK: pushw %ds 349 0x1e 350 351 # CHECK: pushw %ss 352 0x16 353 354 # CHECK: pushw %es 355 0x06 356 357 # CHECK: pushw %fs 358 0x0f 0xa0 359 360 # CHECK: pushw %gs 361 0x0f 0xa8 362 363 # CHECK: pushl %cs 364 0x66 0x0e 365 366 # CHECK: pushl %ds 367 0x66 0x1e 368 369 # CHECK: pushl %ss 370 0x66 0x16 371 372 # CHECK: pushl %es 373 0x66 0x06 374 375 # CHECK: pushl %fs 376 0x66 0x0f 0xa0 377 378 # CHECK: pushl %gs 379 0x66 0x0f 0xa8 380 381 # CHECK: popw %ss 382 0x17 383 384 # CHECK: popw %ds 385 0x1f 386 387 # CHECK: popw %es 388 0x07 389 390 # CHECK: popl %ss 391 0x66 0x17 392 393 # CHECK: popl %ds 394 0x66 0x1f 395 396 # CHECK: popl %es 397 0x66 0x07 398 399 # CHECK: pushfl 400 0x66 0x9c 401 402 # CHECK: popfl 403 0x66 0x9d 404 405 # CHECK: pushfl 406 0x66 0x9c 407 408 # CHECK: popfl 409 0x66 0x9d 410 411 # CHECK: setb %bl 412 0x0f 0x92 0xc3 413 414 # CHECK: setb %bl 415 0x0f 0x92 0xc3 416 417 # CHECK: setae %bl 418 0x0f 0x93 0xc3 419 420 # CHECK: setae %bl 421 0x0f 0x93 0xc3 422 423 # CHECK: setbe %bl 424 0x0f 0x96 0xc3 425 426 # CHECK: seta %bl 427 0x0f 0x97 0xc3 428 429 # CHECK: setp %bl 430 0x0f 0x9a 0xc3 431 432 # CHECK: setnp %bl 433 0x0f 0x9b 0xc3 434 435 # CHECK: setl %bl 436 0x0f 0x9c 0xc3 437 438 # CHECK: setge %bl 439 0x0f 0x9d 0xc3 440 441 # CHECK: setle %bl 442 0x0f 0x9e 0xc3 443 444 # CHECK: setg %bl 445 0x0f 0x9f 0xc3 446 447 # CHECK: setne %cl 448 0x0f 0x95 0xc1 449 450 # CHECK: setb %bl 451 0x0f 0x92 0xc3 452 453 # CHECK: setb %bl 454 0x0f 0x92 0xc3 455 456 # CHECK: lcalll $31438, $31438 457 0x66 0x9a 0xce 0x7a 0x00 0x00 0xce 0x7a 458 459 # CHECK: lcalll $31438, $31438 460 0x66 0x9a 0xce 0x7a 0x00 0x00 0xce 0x7a 461 462 # CHECK: ljmpl $31438, $31438 463 0x66 0xea 0xce 0x7a 0x00 0x00 0xce 0x7a 464 465 # CHECK: ljmpl $31438, $31438 466 0x66 0xea 0xce 0x7a 0x00 0x00 0xce 0x7a 467 468 # CHECK: lcallw $31438, $31438 469 0x9a 0xce 0x7a 0xce 0x7a 470 471 # CHECK: lcallw $31438, $31438 472 0x9a 0xce 0x7a 0xce 0x7a 473 474 # CHECK: ljmpw $31438, $31438 475 0xea 0xce 0x7a 0xce 0x7a 476 477 # CHECK: ljmpw $31438, $31438 478 0xea 0xce 0x7a 0xce 0x7a 479 480 # CHECK: lcallw $31438, $31438 481 0x9a 0xce 0x7a 0xce 0x7a 482 483 # CHECK: lcallw $31438, $31438 484 0x9a 0xce 0x7a 0xce 0x7a 485 486 # CHECK: ljmpw $31438, $31438 487 0xea 0xce 0x7a 0xce 0x7a 488 489 # CHECK: ljmpw $31438, $31438 490 0xea 0xce 0x7a 0xce 0x7a 491 492 # CHECK: calll 493 0x66 0xe8 0x00 0x00 0x00 0x00 494 495 # CHECK: callw 496 0xe8 0x00 0x00 497 498 # CHECK: incb %al 499 0xfe 0xc0 500 501 # CHECK: incw %ax 502 0x40 503 504 # CHECK: incl %eax 505 0x66 0x40 506 507 # CHECK: decb %al 508 0xfe 0xc8 509 510 # CHECK: decw %ax 511 0x48 512 513 # CHECK: decl %eax 514 0x66 0x48 515 516 # CHECK: pshufw $14, %mm4, %mm0 517 0x0f 0x70 0xc4 0x0e 518 519 # CHECK: pshufw $90, %mm4, %mm0 520 0x0f 0x70 0xc4 0x5a 521 522 # CHECK: aaa 523 0x37 524 525 # CHECK: aad $1 526 0xd5 0x01 527 528 # CHECK: aad 529 0xd5 0x0a 530 531 # CHECK: aad 532 0xd5 0x0a 533 534 # CHECK: aam $2 535 0xd4 0x02 536 537 # CHECK: aam 538 0xd4 0x0a 539 540 # CHECK: aam 541 0xd4 0x0a 542 543 # CHECK: aas 544 0x3f 545 546 # CHECK: daa 547 0x27 548 549 # CHECK: das 550 0x2f 551 552 # CHECK: retw $31438 553 0xc2 0xce 0x7a 554 555 # CHECK: lretw $31438 556 0xca 0xce 0x7a 557 558 # CHECK: retw $31438 559 0xc2 0xce 0x7a 560 561 # CHECK: lretw $31438 562 0xca 0xce 0x7a 563 564 # CHECK: retl $31438 565 0x66 0xc2 0xce 0x7a 566 567 # CHECK: lretl $31438 568 0x66 0xca 0xce 0x7a 569 570 # CHECK: bound 2(%eax), %bx 571 0x67 0x62 0x58 0x02 572 573 # CHECK: bound 4(%ebx), %ecx 574 0x67 0x66 0x62 0x4b 0x04 575 576 # CHECK: arpl %bx, %bx 577 0x63 0xdb 578 579 # CHECK: arpl %bx, 6(%ecx) 580 0x67 0x63 0x59 0x06 581 582 # CHECK: lgdtw 4(%eax) 583 0x67 0x0f 0x01 0x50 0x04 584 585 # CHECK: lgdtw 4(%eax) 586 0x67 0x0f 0x01 0x50 0x04 587 588 # CHECK: lgdtl 4(%eax) 589 0x67 0x66 0x0f 0x01 0x50 0x04 590 591 # CHECK: lidtw 4(%eax) 592 0x67 0x0f 0x01 0x58 0x04 593 594 # CHECK: lidtw 4(%eax) 595 0x67 0x0f 0x01 0x58 0x04 596 597 # CHECK: lidtl 4(%eax) 598 0x67 0x66 0x0f 0x01 0x58 0x04 599 600 # CHECK: sgdtw 4(%eax) 601 0x67 0x0f 0x01 0x40 0x04 602 603 # CHECK: sgdtw 4(%eax) 604 0x67 0x0f 0x01 0x40 0x04 605 606 # CHECK: sgdtl 4(%eax) 607 0x67 0x66 0x0f 0x01 0x40 0x04 608 609 # CHECK: sidtw 4(%eax) 610 0x67 0x0f 0x01 0x48 0x04 611 612 # CHECK: sidtw 4(%eax) 613 0x67 0x0f 0x01 0x48 0x04 614 615 # CHECK: sidtl 4(%eax) 616 0x67 0x66 0x0f 0x01 0x48 0x04 617 618 # CHECK: fcompi %st(2) 619 0xdf 0xf2 620 621 # CHECK: fcompi %st(2) 622 0xdf 0xf2 623 624 # CHECK: fcompi %st(1) 625 0xdf 0xf1 626 627 # CHECK: fucompi %st(2) 628 0xdf 0xea 629 630 # CHECK: fucompi %st(2) 631 0xdf 0xea 632 633 # CHECK: fucompi %st(1) 634 0xdf 0xe9 635 636 # CHECK: fldcw 32493 637 0xd9 0x2e 0xed 0x7e 638 639 # CHECK: fldcw 32493 640 0xd9 0x2e 0xed 0x7e 641 642 # CHECK: fnstcw 32493 643 0xd9 0x3e 0xed 0x7e 644 645 # CHECK: fnstcw 32493 646 0xd9 0x3e 0xed 0x7e 647 648 # CHECK: wait 649 0x9b 650 651 # CHECK: fnstcw 32493 652 0xd9 0x3e 0xed 0x7e 653 654 # CHECK: wait 655 0x9b 656 657 # CHECK: fnstcw 32493 658 0xd9 0x3e 0xed 0x7e 659 660 # CHECK: fnstsw 32493 661 0xdd 0x3e 0xed 0x7e 662 663 # CHECK: fnstsw 32493 664 0xdd 0x3e 0xed 0x7e 665 666 # CHECK: wait 667 0x9b 668 669 # CHECK: fnstsw 32493 670 0xdd 0x3e 0xed 0x7e 671 672 # CHECK: wait 673 0x9b 674 675 # CHECK: fnstsw 32493 676 0xdd 0x3e 0xed 0x7e 677 678 # CHECK: verr 32493 679 0x0f 0x00 0x26 0xed 0x7e 680 681 # CHECK: verr 32493 682 0x0f 0x00 0x26 0xed 0x7e 683 684 # CHECK: wait 685 0x9b 686 687 # CHECK: fnclex 688 0xdb 0xe2 689 690 # CHECK: fnclex 691 0xdb 0xe2 692 693 # CHECK: ud2 694 0x0f 0x0b 695 696 # CHECK: ud2 697 0x0f 0x0b 698 699 # CHECK: ud2b 700 0x0f 0xb9 701 702 # CHECK: loope 703 0xe1 0x00 704 705 # CHECK: loopne 706 0xe0 0x00 707 708 # CHECK: outsb 709 0x6e 710 711 # CHECK: outsw 712 0x6f 713 714 # CHECK: outsl 715 0x66 0x6f 716 717 # CHECK: insb 718 0x6c 719 720 # CHECK: insw 721 0x6d 722 723 # CHECK: insl 724 0x66 0x6d 725 726 # CHECK: movsb 727 0xa4 728 729 # CHECK: movsw 730 0xa5 731 732 # CHECK: movsl 733 0x66 0xa5 734 735 # CHECK: lodsb 736 0xac 737 738 # CHECK: lodsw 739 0xad 740 741 # CHECK: lodsl 742 0x66 0xad 743 744 # CHECK: stosb 745 0xaa 746 747 # CHECK: stosw 748 0xab 749 750 # CHECK: stosl 751 0x66 0xab 752 753 # CHECK: strw %ax 754 0x0f 0x00 0xc8 755 756 # CHECK: strl %eax 757 0x66 0x0f 0x00 0xc8 758 759 # CHECK: fsubp %st(1) 760 0xde 0xe1 761 762 # CHECK: fsubp %st(2) 763 0xde 0xe2 764 765 # CHECKX: nop 766 0x66 0x90 767 768 # CHECKX: nop 769 0x90 770 771 # CHECK: xchgl %ecx, %eax 772 0x66 0x91 773 774 # CHECK: xchgl %ecx, %eax 775 0x66 0x91 776 777 # CHECK: retw 778 0xc3 779 780 # CHECK: retl 781 0x66 0xc3 782 783 # CHECK: lretw 784 0xcb 785 786 # CHECK: lretl 787 0x66 0xcb 788 789