1// RUN: llvm-mc -triple i386-unknown-unknown-code16 --show-encoding %s | FileCheck %s 2 3 movl $0x12345678, %ebx 4// CHECK: movl 5// CHECK: encoding: [0x66,0xbb,0x78,0x56,0x34,0x12] 6 pause 7// CHECK: pause 8// CHECK: encoding: [0xf3,0x90] 9 sfence 10// CHECK: sfence 11// CHECK: encoding: [0x0f,0xae,0xf8] 12 lfence 13// CHECK: lfence 14// CHECK: encoding: [0x0f,0xae,0xe8] 15 mfence 16 stgi 17// CHECK: stgi 18// CHECK: encoding: [0x0f,0x01,0xdc] 19 clgi 20// CHECK: clgi 21// CHECK: encoding: [0x0f,0x01,0xdd] 22 23 rdtscp 24// CHECK: rdtscp 25// CHECK: encoding: [0x0f,0x01,0xf9] 26 27 28// CHECK: movl %eax, 16(%ebp) # encoding: [0x67,0x66,0x89,0x45,0x10] 29 movl %eax, 16(%ebp) 30// CHECK: movl %eax, -16(%ebp) # encoding: [0x67,0x66,0x89,0x45,0xf0] 31 movl %eax, -16(%ebp) 32 33// CHECK: testb %bl, %cl # encoding: [0x84,0xd9] 34 testb %bl, %cl 35 36// CHECK: cmpl %eax, %ebx # encoding: [0x66,0x39,0xc3] 37 cmpl %eax, %ebx 38 39// CHECK: addw %ax, %ax # encoding: [0x01,0xc0] 40 addw %ax, %ax 41 42// CHECK: shrl %eax # encoding: [0x66,0xd1,0xe8] 43 shrl $1, %eax 44 45// CHECK: shll %eax # encoding: [0x66,0xd1,0xe0] 46 sall $1, %eax 47// CHECK: shll %eax # encoding: [0x66,0xd1,0xe0] 48 sal $1, %eax 49 50// moffset forms of moves 51 52// CHECK: movb 0, %al # encoding: [0xa0,0x00,0x00] 53movb 0, %al 54 55// CHECK: movw 0, %ax # encoding: [0xa1,0x00,0x00] 56movw 0, %ax 57 58// CHECK: movl 0, %eax # encoding: [0x66,0xa1,0x00,0x00] 59movl 0, %eax 60 61into 62// CHECK: into 63// CHECK: encoding: [0xce] 64int3 65// CHECK: int3 66// CHECK: encoding: [0xcc] 67int $4 68// CHECK: int $4 69// CHECK: encoding: [0xcd,0x04] 70int $255 71// CHECK: int $255 72// CHECK: encoding: [0xcd,0xff] 73 74// CHECK: pushfw # encoding: [0x9c] 75 pushf 76// CHECK: pushfl # encoding: [0x66,0x9c] 77 pushfl 78// CHECK: popfw # encoding: [0x9d] 79 popf 80// CHECK: popfl # encoding: [0x66,0x9d] 81 popfl 82 83retl 84// CHECK: ret 85// CHECK: encoding: [0x66,0xc3] 86 87// CHECK: cmoval %eax, %edx 88// CHECK: encoding: [0x66,0x0f,0x47,0xd0] 89 cmoval %eax,%edx 90 91// CHECK: cmovael %eax, %edx 92// CHECK: encoding: [0x66,0x0f,0x43,0xd0] 93 cmovael %eax,%edx 94 95// CHECK: cmovbel %eax, %edx 96// CHECK: encoding: [0x66,0x0f,0x46,0xd0] 97 cmovbel %eax,%edx 98 99// CHECK: cmovbl %eax, %edx 100// CHECK: encoding: [0x66,0x0f,0x42,0xd0] 101 cmovbl %eax,%edx 102 103// CHECK: cmovbw %bx, %bx 104cmovnae %bx,%bx 105 106 107// CHECK: cmovbel %eax, %edx 108// CHECK: encoding: [0x66,0x0f,0x46,0xd0] 109 cmovbel %eax,%edx 110 111// CHECK: cmovbl %eax, %edx 112// CHECK: encoding: [0x66,0x0f,0x42,0xd0] 113 cmovcl %eax,%edx 114 115// CHECK: cmovel %eax, %edx 116// CHECK: encoding: [0x66,0x0f,0x44,0xd0] 117 cmovel %eax,%edx 118 119// CHECK: cmovgl %eax, %edx 120// CHECK: encoding: [0x66,0x0f,0x4f,0xd0] 121 cmovgl %eax,%edx 122 123// CHECK: cmovgel %eax, %edx 124// CHECK: encoding: [0x66,0x0f,0x4d,0xd0] 125 cmovgel %eax,%edx 126 127// CHECK: cmovll %eax, %edx 128// CHECK: encoding: [0x66,0x0f,0x4c,0xd0] 129 cmovll %eax,%edx 130 131// CHECK: cmovlel %eax, %edx 132// CHECK: encoding: [0x66,0x0f,0x4e,0xd0] 133 cmovlel %eax,%edx 134 135// CHECK: cmovbel %eax, %edx 136// CHECK: encoding: [0x66,0x0f,0x46,0xd0] 137 cmovnal %eax,%edx 138 139// CHECK: cmovnel %eax, %edx 140// CHECK: encoding: [0x66,0x0f,0x45,0xd0] 141 cmovnel %eax,%edx 142 143// CHECK: cmovael %eax, %edx 144// CHECK: encoding: [0x66,0x0f,0x43,0xd0] 145 cmovnbl %eax,%edx 146 147// CHECK: cmoval %eax, %edx 148// CHECK: encoding: [0x66,0x0f,0x47,0xd0] 149 cmovnbel %eax,%edx 150 151// CHECK: cmovael %eax, %edx 152// CHECK: encoding: [0x66,0x0f,0x43,0xd0] 153 cmovncl %eax,%edx 154 155// CHECK: cmovnel %eax, %edx 156// CHECK: encoding: [0x66,0x0f,0x45,0xd0] 157 cmovnel %eax,%edx 158 159// CHECK: cmovlel %eax, %edx 160// CHECK: encoding: [0x66,0x0f,0x4e,0xd0] 161 cmovngl %eax,%edx 162 163// CHECK: cmovgel %eax, %edx 164// CHECK: encoding: [0x66,0x0f,0x4d,0xd0] 165 cmovnl %eax,%edx 166 167// CHECK: cmovnel %eax, %edx 168// CHECK: encoding: [0x66,0x0f,0x45,0xd0] 169 cmovnel %eax,%edx 170 171// CHECK: cmovlel %eax, %edx 172// CHECK: encoding: [0x66,0x0f,0x4e,0xd0] 173 cmovngl %eax,%edx 174 175// CHECK: cmovll %eax, %edx 176// CHECK: encoding: [0x66,0x0f,0x4c,0xd0] 177 cmovngel %eax,%edx 178 179// CHECK: cmovgel %eax, %edx 180// CHECK: encoding: [0x66,0x0f,0x4d,0xd0] 181 cmovnll %eax,%edx 182 183// CHECK: cmovgl %eax, %edx 184// CHECK: encoding: [0x66,0x0f,0x4f,0xd0] 185 cmovnlel %eax,%edx 186 187// CHECK: cmovnol %eax, %edx 188// CHECK: encoding: [0x66,0x0f,0x41,0xd0] 189 cmovnol %eax,%edx 190 191// CHECK: cmovnpl %eax, %edx 192// CHECK: encoding: [0x66,0x0f,0x4b,0xd0] 193 cmovnpl %eax,%edx 194 195// CHECK: cmovnsl %eax, %edx 196// CHECK: encoding: [0x66,0x0f,0x49,0xd0] 197 cmovnsl %eax,%edx 198 199// CHECK: cmovnel %eax, %edx 200// CHECK: encoding: [0x66,0x0f,0x45,0xd0] 201 cmovnzl %eax,%edx 202 203// CHECK: cmovol %eax, %edx 204// CHECK: encoding: [0x66,0x0f,0x40,0xd0] 205 cmovol %eax,%edx 206 207// CHECK: cmovpl %eax, %edx 208// CHECK: encoding: [0x66,0x0f,0x4a,0xd0] 209 cmovpl %eax,%edx 210 211// CHECK: cmovsl %eax, %edx 212// CHECK: encoding: [0x66,0x0f,0x48,0xd0] 213 cmovsl %eax,%edx 214 215// CHECK: cmovel %eax, %edx 216// CHECK: encoding: [0x66,0x0f,0x44,0xd0] 217 cmovzl %eax,%edx 218 219// CHECK: fmul %st(0) 220// CHECK: encoding: [0xd8,0xc8] 221 fmul %st(0), %st 222 223// CHECK: fadd %st(0) 224// CHECK: encoding: [0xd8,0xc0] 225 fadd %st(0), %st 226 227// CHECK: fsub %st(0) 228// CHECK: encoding: [0xd8,0xe0] 229 fsub %st(0), %st 230 231// CHECK: fsubr %st(0) 232// CHECK: encoding: [0xd8,0xe8] 233 fsubr %st(0), %st 234 235// CHECK: fdivr %st(0) 236// CHECK: encoding: [0xd8,0xf8] 237 fdivr %st(0), %st 238 239// CHECK: fdiv %st(0) 240// CHECK: encoding: [0xd8,0xf0] 241 fdiv %st(0), %st 242 243// CHECK: movl %cs, %eax 244// CHECK: encoding: [0x66,0x8c,0xc8] 245 movl %cs, %eax 246 247// CHECK: movw %cs, %ax 248// CHECK: encoding: [0x8c,0xc8] 249 movw %cs, %ax 250 251// CHECK: movw %cs, (%eax) 252// CHECK: encoding: [0x67,0x8c,0x08] 253 mov %cs, (%eax) 254 255// CHECK: movw %cs, (%eax) 256// CHECK: encoding: [0x67,0x8c,0x08] 257 movw %cs, (%eax) 258 259// CHECK: movw %ax, %cs 260// CHECK: encoding: [0x8e,0xc8] 261 movl %eax, %cs 262 263// CHECK: movw %ax, %cs 264// CHECK: encoding: [0x8e,0xc8] 265 mov %eax, %cs 266 267// CHECK: movw %ax, %cs 268// CHECK: encoding: [0x8e,0xc8] 269 movw %ax, %cs 270 271// CHECK: movw %ax, %cs 272// CHECK: encoding: [0x8e,0xc8] 273 mov %ax, %cs 274 275// CHECK: movw (%eax), %cs 276// CHECK: encoding: [0x67,0x8e,0x08] 277 mov (%eax), %cs 278 279// CHECK: movw (%eax), %cs 280// CHECK: encoding: [0x67,0x8e,0x08] 281 movw (%eax), %cs 282 283// CHECK: movl %cr0, %eax 284// CHECK: encoding: [0x0f,0x20,0xc0] 285 movl %cr0,%eax 286 287// CHECK: movl %cr1, %eax 288// CHECK: encoding: [0x0f,0x20,0xc8] 289 movl %cr1,%eax 290 291// CHECK: movl %cr2, %eax 292// CHECK: encoding: [0x0f,0x20,0xd0] 293 movl %cr2,%eax 294 295// CHECK: movl %cr3, %eax 296// CHECK: encoding: [0x0f,0x20,0xd8] 297 movl %cr3,%eax 298 299// CHECK: movl %cr4, %eax 300// CHECK: encoding: [0x0f,0x20,0xe0] 301 movl %cr4,%eax 302 303// CHECK: movl %dr0, %eax 304// CHECK: encoding: [0x0f,0x21,0xc0] 305 movl %dr0,%eax 306 307// CHECK: movl %dr1, %eax 308// CHECK: encoding: [0x0f,0x21,0xc8] 309 movl %dr1,%eax 310 311// CHECK: movl %dr1, %eax 312// CHECK: encoding: [0x0f,0x21,0xc8] 313 movl %dr1,%eax 314 315// CHECK: movl %dr2, %eax 316// CHECK: encoding: [0x0f,0x21,0xd0] 317 movl %dr2,%eax 318 319// CHECK: movl %dr3, %eax 320// CHECK: encoding: [0x0f,0x21,0xd8] 321 movl %dr3,%eax 322 323// CHECK: movl %dr4, %eax 324// CHECK: encoding: [0x0f,0x21,0xe0] 325 movl %dr4,%eax 326 327// CHECK: movl %dr5, %eax 328// CHECK: encoding: [0x0f,0x21,0xe8] 329 movl %dr5,%eax 330 331// CHECK: movl %dr6, %eax 332// CHECK: encoding: [0x0f,0x21,0xf0] 333 movl %dr6,%eax 334 335// CHECK: movl %dr7, %eax 336// CHECK: encoding: [0x0f,0x21,0xf8] 337 movl %dr7,%eax 338 339// CHECK: wait 340// CHECK: encoding: [0x9b] 341 fwait 342 343// CHECK: [0x65,0x66,0xa1,0x7c,0x00] 344 movl %gs:124, %eax 345 346// CHECK: pusha 347// CHECK: encoding: [0x60] 348 pusha 349 350// CHECK: popa 351// CHECK: encoding: [0x61] 352 popa 353 354// CHECK: pushaw 355// CHECK: encoding: [0x60] 356 pushaw 357 358// CHECK: popaw 359// CHECK: encoding: [0x61] 360 popaw 361 362// CHECK: pushal 363// CHECK: encoding: [0x66,0x60] 364 pushal 365 366// CHECK: popal 367// CHECK: encoding: [0x66,0x61] 368 popal 369 370// CHECK: jmpw *8(%eax) 371// CHECK: encoding: [0x67,0xff,0x60,0x08] 372 jmp *8(%eax) 373 374// CHECK: jmpl *8(%eax) 375// CHECK: encoding: [0x67,0x66,0xff,0x60,0x08] 376 jmpl *8(%eax) 377 378// CHECK: lcalll $2, $4660 379// CHECK: encoding: [0x66,0x9a,0x34,0x12,0x00,0x00,0x02,0x00] 380lcalll $0x2, $0x1234 381 382 383L1: 384 jcxz L1 385// CHECK: jcxz L1 386// CHECK: encoding: [0xe3,A] 387 jecxz L1 388// CHECK: jecxz L1 389// CHECK: encoding: [0x67,0xe3,A] 390 391iret 392// CHECK: iretw 393// CHECK: encoding: [0xcf] 394iretw 395// CHECK: iretw 396// CHECK: encoding: [0xcf] 397iretl 398// CHECK: iretl 399// CHECK: encoding: [0x66,0xcf] 400 401sysret 402// CHECK: sysretl 403// CHECK: encoding: [0x0f,0x07] 404sysretl 405// CHECK: sysretl 406// CHECK: encoding: [0x0f,0x07] 407 408testl %ecx, -24(%ebp) 409// CHECK: testl %ecx, -24(%ebp) 410testl -24(%ebp), %ecx 411// CHECK: testl %ecx, -24(%ebp) 412 413 414push %cs 415// CHECK: pushw %cs 416// CHECK: encoding: [0x0e] 417push %ds 418// CHECK: pushw %ds 419// CHECK: encoding: [0x1e] 420push %ss 421// CHECK: pushw %ss 422// CHECK: encoding: [0x16] 423push %es 424// CHECK: pushw %es 425// CHECK: encoding: [0x06] 426push %fs 427// CHECK: pushw %fs 428// CHECK: encoding: [0x0f,0xa0] 429push %gs 430// CHECK: pushw %gs 431// CHECK: encoding: [0x0f,0xa8] 432 433pushw %cs 434// CHECK: pushw %cs 435// CHECK: encoding: [0x0e] 436pushw %ds 437// CHECK: pushw %ds 438// CHECK: encoding: [0x1e] 439pushw %ss 440// CHECK: pushw %ss 441// CHECK: encoding: [0x16] 442pushw %es 443// CHECK: pushw %es 444// CHECK: encoding: [0x06] 445pushw %fs 446// CHECK: pushw %fs 447// CHECK: encoding: [0x0f,0xa0] 448pushw %gs 449// CHECK: pushw %gs 450// CHECK: encoding: [0x0f,0xa8] 451 452pushl %cs 453// CHECK: pushl %cs 454// CHECK: encoding: [0x66,0x0e] 455pushl %ds 456// CHECK: pushl %ds 457// CHECK: encoding: [0x66,0x1e] 458pushl %ss 459// CHECK: pushl %ss 460// CHECK: encoding: [0x66,0x16] 461pushl %es 462// CHECK: pushl %es 463// CHECK: encoding: [0x66,0x06] 464pushl %fs 465// CHECK: pushl %fs 466// CHECK: encoding: [0x66,0x0f,0xa0] 467pushl %gs 468// CHECK: pushl %gs 469// CHECK: encoding: [0x66,0x0f,0xa8] 470 471pop %ss 472// CHECK: popw %ss 473// CHECK: encoding: [0x17] 474pop %ds 475// CHECK: popw %ds 476// CHECK: encoding: [0x1f] 477pop %es 478// CHECK: popw %es 479// CHECK: encoding: [0x07] 480 481popl %ss 482// CHECK: popl %ss 483// CHECK: encoding: [0x66,0x17] 484popl %ds 485// CHECK: popl %ds 486// CHECK: encoding: [0x66,0x1f] 487popl %es 488// CHECK: popl %es 489// CHECK: encoding: [0x66,0x07] 490 491pushfd 492// CHECK: pushfl 493popfd 494// CHECK: popfl 495pushfl 496// CHECK: pushfl 497popfl 498// CHECK: popfl 499 500 501 setc %bl 502 setnae %bl 503 setnb %bl 504 setnc %bl 505 setna %bl 506 setnbe %bl 507 setpe %bl 508 setpo %bl 509 setnge %bl 510 setnl %bl 511 setng %bl 512 setnle %bl 513 514 setneb %cl // CHECK: setne %cl 515 setcb %bl // CHECK: setb %bl 516 setnaeb %bl // CHECK: setb %bl 517 518 519// CHECK: lcalll $31438, $31438 520// CHECK: lcalll $31438, $31438 521// CHECK: ljmpl $31438, $31438 522// CHECK: ljmpl $31438, $31438 523 524calll $0x7ace,$0x7ace 525lcalll $0x7ace,$0x7ace 526jmpl $0x7ace,$0x7ace 527ljmpl $0x7ace,$0x7ace 528 529// CHECK: lcallw $31438, $31438 530// CHECK: lcallw $31438, $31438 531// CHECK: ljmpw $31438, $31438 532// CHECK: ljmpw $31438, $31438 533 534callw $0x7ace,$0x7ace 535lcallw $0x7ace,$0x7ace 536jmpw $0x7ace,$0x7ace 537ljmpw $0x7ace,$0x7ace 538 539// CHECK: lcallw $31438, $31438 540// CHECK: lcallw $31438, $31438 541// CHECK: ljmpw $31438, $31438 542// CHECK: ljmpw $31438, $31438 543 544call $0x7ace,$0x7ace 545lcall $0x7ace,$0x7ace 546jmp $0x7ace,$0x7ace 547ljmp $0x7ace,$0x7ace 548 549// CHECK: calll a 550// CHECK: calll a 551// CHECK: calll a 552// CHECK: callw 42 553// CHECK: encoding: [0xe8,A,A] 554 calll a 555data32 call a 556data32 callw a 557callw 42 558 559// CHECK: ljmpl $1, $2 560// CHECK-NEXT: ljmpl $1, $2 561data32 ljmp $1, $2 562data32 ljmpw $1, $2 563 564// CHECK: incb %al # encoding: [0xfe,0xc0] 565 incb %al 566 567// CHECK: incw %ax # encoding: [0x40] 568 incw %ax 569 570// CHECK: incl %eax # encoding: [0x66,0x40] 571 incl %eax 572 573// CHECK: decb %al # encoding: [0xfe,0xc8] 574 decb %al 575 576// CHECK: decw %ax # encoding: [0x48] 577 decw %ax 578 579// CHECK: decl %eax # encoding: [0x66,0x48] 580 decl %eax 581 582// CHECK: pshufw $14, %mm4, %mm0 # encoding: [0x0f,0x70,0xc4,0x0e] 583pshufw $14, %mm4, %mm0 584 585// CHECK: pshufw $90, %mm4, %mm0 # encoding: [0x0f,0x70,0xc4,0x5a] 586pshufw $90, %mm4, %mm0 587 588// CHECK: aaa 589// CHECK: encoding: [0x37] 590 aaa 591 592// CHECK: aad $1 593// CHECK: encoding: [0xd5,0x01] 594 aad $1 595 596// CHECK: aad 597// CHECK: encoding: [0xd5,0x0a] 598 aad $0xA 599 600// CHECK: aad 601// CHECK: encoding: [0xd5,0x0a] 602 aad 603 604// CHECK: aam $2 605// CHECK: encoding: [0xd4,0x02] 606 aam $2 607 608// CHECK: aam 609// CHECK: encoding: [0xd4,0x0a] 610 aam $0xA 611 612// CHECK: aam 613// CHECK: encoding: [0xd4,0x0a] 614 aam 615 616// CHECK: aas 617// CHECK: encoding: [0x3f] 618 aas 619 620// CHECK: daa 621// CHECK: encoding: [0x27] 622 daa 623 624// CHECK: das 625// CHECK: encoding: [0x2f] 626 das 627 628// CHECK: retw $31438 629// CHECK: encoding: [0xc2,0xce,0x7a] 630 retw $0x7ace 631 632// CHECK: lretw $31438 633// CHECK: encoding: [0xca,0xce,0x7a] 634 lretw $0x7ace 635 636// CHECK: retw $31438 637// CHECK: encoding: [0xc2,0xce,0x7a] 638 ret $0x7ace 639 640// CHECK: lretw $31438 641// CHECK: encoding: [0xca,0xce,0x7a] 642 lret $0x7ace 643 644// CHECK: retl $31438 645// CHECK: encoding: [0x66,0xc2,0xce,0x7a] 646 retl $0x7ace 647 648// CHECK: lretl $31438 649// CHECK: encoding: [0x66,0xca,0xce,0x7a] 650 lretl $0x7ace 651 652// CHECK: bound %bx, 2(%eax) 653// CHECK: encoding: [0x67,0x62,0x58,0x02] 654 bound %bx,2(%eax) 655 656// CHECK: bound %ecx, 4(%ebx) 657// CHECK: encoding: [0x67,0x66,0x62,0x4b,0x04] 658 bound %ecx,4(%ebx) 659 660// CHECK: arpl %bx, %bx 661// CHECK: encoding: [0x63,0xdb] 662 arpl %bx,%bx 663 664// CHECK: arpl %bx, 6(%ecx) 665// CHECK: encoding: [0x67,0x63,0x59,0x06] 666 arpl %bx,6(%ecx) 667 668// CHECK: lgdtw 4(%eax) 669// CHECK: encoding: [0x67,0x0f,0x01,0x50,0x04] 670 lgdtw 4(%eax) 671 672// CHECK: lgdtw 4(%eax) 673// CHECK: encoding: [0x67,0x0f,0x01,0x50,0x04] 674 lgdt 4(%eax) 675 676// CHECK: lgdtl 4(%eax) 677// CHECK: encoding: [0x67,0x66,0x0f,0x01,0x50,0x04] 678 lgdtl 4(%eax) 679 680// CHECK: lidtw 4(%eax) 681// CHECK: encoding: [0x67,0x0f,0x01,0x58,0x04] 682 lidtw 4(%eax) 683 684// CHECK: lidtw 4(%eax) 685// CHECK: encoding: [0x67,0x0f,0x01,0x58,0x04] 686 lidt 4(%eax) 687 688// CHECK: lidtl 4(%eax) 689// CHECK: encoding: [0x67,0x66,0x0f,0x01,0x58,0x04] 690 lidtl 4(%eax) 691 692// CHECK: sgdtw 4(%eax) 693// CHECK: encoding: [0x67,0x0f,0x01,0x40,0x04] 694 sgdtw 4(%eax) 695 696// CHECK: sgdtw 4(%eax) 697// CHECK: encoding: [0x67,0x0f,0x01,0x40,0x04] 698 sgdt 4(%eax) 699 700// CHECK: sgdtl 4(%eax) 701// CHECK: encoding: [0x67,0x66,0x0f,0x01,0x40,0x04] 702 sgdtl 4(%eax) 703 704// CHECK: sidtw 4(%eax) 705// CHECK: encoding: [0x67,0x0f,0x01,0x48,0x04] 706 sidtw 4(%eax) 707 708// CHECK: sidtw 4(%eax) 709// CHECK: encoding: [0x67,0x0f,0x01,0x48,0x04] 710 sidt 4(%eax) 711 712// CHECK: sidtl 4(%eax) 713// CHECK: encoding: [0x67,0x66,0x0f,0x01,0x48,0x04] 714 sidtl 4(%eax) 715 716// CHECK: fcompi %st(2) 717// CHECK: encoding: [0xdf,0xf2] 718 fcompi %st(2), %st 719 720// CHECK: fcompi %st(2) 721// CHECK: encoding: [0xdf,0xf2] 722 fcompi %st(2) 723 724// CHECK: fcompi 725// CHECK: encoding: [0xdf,0xf1] 726 fcompi 727 728// CHECK: fucompi %st(2) 729// CHECK: encoding: [0xdf,0xea] 730 fucompi %st(2),%st 731 732// CHECK: fucompi %st(2) 733// CHECK: encoding: [0xdf,0xea] 734 fucompi %st(2) 735 736// CHECK: fucompi 737// CHECK: encoding: [0xdf,0xe9] 738 fucompi 739 740// CHECK: fldcw 32493 741// CHECK: encoding: [0xd9,0x2e,0xed,0x7e] 742 fldcww 0x7eed 743 744// CHECK: fldcw 32493 745// CHECK: encoding: [0xd9,0x2e,0xed,0x7e] 746 fldcw 0x7eed 747 748// CHECK: fnstcw 32493 749// CHECK: encoding: [0xd9,0x3e,0xed,0x7e] 750 fnstcww 0x7eed 751 752// CHECK: fnstcw 32493 753// CHECK: encoding: [0xd9,0x3e,0xed,0x7e] 754 fnstcw 0x7eed 755 756// CHECK: wait 757// CHECK: encoding: [0x9b] 758 fstcww 0x7eed 759 760// CHECK: wait 761// CHECK: encoding: [0x9b] 762 fstcw 0x7eed 763 764// CHECK: fnstsw 32493 765// CHECK: encoding: [0xdd,0x3e,0xed,0x7e] 766 fnstsww 0x7eed 767 768// CHECK: fnstsw 32493 769// CHECK: encoding: [0xdd,0x3e,0xed,0x7e] 770 fnstsw 0x7eed 771 772// CHECK: wait 773// CHECK: encoding: [0x9b] 774 fstsww 0x7eed 775 776// CHECK: wait 777// CHECK: encoding: [0x9b] 778 fstsw 0x7eed 779 780// CHECK: verr 32493 781// CHECK: encoding: [0x0f,0x00,0x26,0xed,0x7e] 782 verrw 0x7eed 783 784// CHECK: verr 32493 785// CHECK: encoding: [0x0f,0x00,0x26,0xed,0x7e] 786 verr 0x7eed 787 788// CHECK: wait 789// CHECK: encoding: [0x9b] 790 fclex 791 792// CHECK: fnclex 793// CHECK: encoding: [0xdb,0xe2] 794 fnclex 795 796// CHECK: ud2 797// CHECK: encoding: [0x0f,0x0b] 798 ud2 799 800// CHECK: ud2 801// CHECK: encoding: [0x0f,0x0b] 802 ud2a 803 804// CHECK: ud1w %ax, %ax 805// CHECK: encoding: [0x0f,0xb9,0xc0] 806 ud1 %ax, %ax 807 808// CHECK: ud1w %ax, %ax 809// CHECK: encoding: [0x0f,0xb9,0xc0] 810 ud2b %ax, %ax 811 812// CHECK: loope 0 813// CHECK: encoding: [0xe1,A] 814 loopz 0 815 816// CHECK: loopne 0 817// CHECK: encoding: [0xe0,A] 818 loopnz 0 819 820// CHECK: outsb (%si), %dx # encoding: [0x6e] 821// CHECK: outsb 822// CHECK: outsb 823 outsb 824 outsb %ds:(%si), %dx 825 outsb (%si), %dx 826 827// CHECK: outsw (%si), %dx # encoding: [0x6f] 828// CHECK: outsw 829// CHECK: outsw 830 outsw 831 outsw %ds:(%si), %dx 832 outsw (%si), %dx 833 834// CHECK: outsl (%si), %dx # encoding: [0x66,0x6f] 835// CHECK: outsl 836 outsl 837 outsl %ds:(%si), %dx 838 outsl (%si), %dx 839 840// CHECK: insb %dx, %es:(%di) # encoding: [0x6c] 841// CHECK: insb 842 insb 843 insb %dx, %es:(%di) 844 845// CHECK: insw %dx, %es:(%di) # encoding: [0x6d] 846// CHECK: insw 847 insw 848 insw %dx, %es:(%di) 849 850// CHECK: insl %dx, %es:(%di) # encoding: [0x66,0x6d] 851// CHECK: insl 852 insl 853 insl %dx, %es:(%di) 854 855// CHECK: movsb (%si), %es:(%di) # encoding: [0xa4] 856// CHECK: movsb 857// CHECK: movsb 858 movsb 859 movsb %ds:(%si), %es:(%di) 860 movsb (%si), %es:(%di) 861 862// CHECK: movsw (%si), %es:(%di) # encoding: [0xa5] 863// CHECK: movsw 864// CHECK: movsw 865 movsw 866 movsw %ds:(%si), %es:(%di) 867 movsw (%si), %es:(%di) 868 869// CHECK: movsl (%si), %es:(%di) # encoding: [0x66,0xa5] 870// CHECK: movsl 871// CHECK: movsl 872 movsl 873 movsl %ds:(%si), %es:(%di) 874 movsl (%si), %es:(%di) 875 876// CHECK: lodsb (%si), %al # encoding: [0xac] 877// CHECK: lodsb 878// CHECK: lodsb 879// CHECK: lodsb 880// CHECK: lodsb 881 lodsb 882 lodsb %ds:(%si), %al 883 lodsb (%si), %al 884 lods %ds:(%si), %al 885 lods (%si), %al 886 887// CHECK: lodsw (%si), %ax # encoding: [0xad] 888// CHECK: lodsw 889// CHECK: lodsw 890// CHECK: lodsw 891// CHECK: lodsw 892 lodsw 893 lodsw %ds:(%si), %ax 894 lodsw (%si), %ax 895 lods %ds:(%si), %ax 896 lods (%si), %ax 897 898// CHECK: lodsl (%si), %eax # encoding: [0x66,0xad] 899// CHECK: lodsl 900// CHECK: lodsl 901// CHECK: lodsl 902// CHECK: lodsl 903 lodsl 904 lodsl %ds:(%si), %eax 905 lodsl (%si), %eax 906 lods %ds:(%si), %eax 907 lods (%si), %eax 908 909// CHECK: stosb %al, %es:(%di) # encoding: [0xaa] 910// CHECK: stosb 911// CHECK: stosb 912 stosb 913 stosb %al, %es:(%di) 914 stos %al, %es:(%di) 915 916// CHECK: stosw %ax, %es:(%di) # encoding: [0xab] 917// CHECK: stosw 918// CHECK: stosw 919 stosw 920 stosw %ax, %es:(%di) 921 stos %ax, %es:(%di) 922 923// CHECK: stosl %eax, %es:(%di) # encoding: [0x66,0xab] 924// CHECK: stosl 925// CHECK: stosl 926 stosl 927 stosl %eax, %es:(%di) 928 stos %eax, %es:(%di) 929 930// CHECK: strw 931// CHECK: encoding: [0x0f,0x00,0xc8] 932 str %ax 933 934// CHECK: strl 935// CHECK: encoding: [0x66,0x0f,0x00,0xc8] 936 str %eax 937 938 939// CHECK: fsubp %st, %st(1) 940// CHECK: encoding: [0xde,0xe1] 941fsubp %st,%st(1) 942 943// CHECK: fsubp %st, %st(2) 944// CHECK: encoding: [0xde,0xe2] 945fsubp %st, %st(2) 946 947// CHECK: xchgl %eax, %eax 948// CHECK: encoding: [0x66,0x90] 949xchgl %eax, %eax 950 951// CHECK: xchgw %ax, %ax 952// CHECK: encoding: [0x90] 953xchgw %ax, %ax 954 955// CHECK: xchgl %ecx, %eax 956// CHECK: encoding: [0x66,0x91] 957xchgl %ecx, %eax 958 959// CHECK: xchgl %ecx, %eax 960// CHECK: encoding: [0x66,0x91] 961xchgl %eax, %ecx 962 963// CHECK: retw 964// CHECK: encoding: [0xc3] 965retw 966 967// CHECK: retl 968// CHECK: encoding: [0x66,0xc3] 969retl 970 971// CHECK: lretw 972// CHECK: encoding: [0xcb] 973lretw 974 975// CHECK: lretl 976// CHECK: encoding: [0x66,0xcb] 977lretl 978 979// CHECK: data32 980// CHECK: encoding: [0x66] 981data32 982 983// CHECK: lgdtl 4(%eax) 984// CHECK-SAME: encoding: [0x67,0x66,0x0f,0x01,0x50,0x04] 985data32 lgdt 4(%eax) 986 987// CHECK: wbnoinvd 988// CHECK: encoding: [0xf3,0x0f,0x09] 989wbnoinvd 990 991// CHECK: umonitor %ax 992// CHECK: encoding: [0xf3,0x0f,0xae,0xf0] 993umonitor %ax 994 995// CHECK: umonitor %eax 996// CHECK: encoding: [0x67,0xf3,0x0f,0xae,0xf0] 997umonitor %eax 998 999// CHECK: movdir64b (%esi), %eax 1000// CHECK: encoding: [0x67,0x66,0x0f,0x38,0xf8,0x06] 1001movdir64b (%esi), %eax 1002 1003// CHECK: movdir64b (%si), %ax 1004// CHECK: encoding: [0x66,0x0f,0x38,0xf8,0x04] 1005movdir64b (%si), %ax 1006 1007// CHECK: enqcmd (%bx), %di 1008// CHECK: encoding: [0xf2,0x0f,0x38,0xf8,0x3f] 1009enqcmd (%bx), %di 1010 1011// CHECK: enqcmd 8128(%si), %ax 1012// CHECK: encoding: [0xf2,0x0f,0x38,0xf8,0x84,0xc0,0x1f] 1013enqcmd 8128(%si), %ax 1014 1015// CHECK: enqcmd -8192(%di), %bx 1016// CHECK: encoding: [0xf2,0x0f,0x38,0xf8,0x9d,0x00,0xe0] 1017enqcmd -8192(%di), %bx 1018 1019// CHECK: enqcmd 7408, %cx 1020// CHECK: encoding: [0xf2,0x0f,0x38,0xf8,0x0e,0xf0,0x1c] 1021enqcmd 7408, %cx 1022 1023// CHECK: enqcmds (%bx), %di 1024// CHECK: encoding: [0xf3,0x0f,0x38,0xf8,0x3f] 1025enqcmds (%bx), %di 1026 1027// CHECK: enqcmds 8128(%si), %ax 1028// CHECK: encoding: [0xf3,0x0f,0x38,0xf8,0x84,0xc0,0x1f] 1029enqcmds 8128(%si), %ax 1030 1031// CHECK: enqcmds -8192(%di), %bx 1032// CHECK: encoding: [0xf3,0x0f,0x38,0xf8,0x9d,0x00,0xe0] 1033enqcmds -8192(%di), %bx 1034 1035// CHECK: enqcmds 7408, %cx 1036// CHECK: encoding: [0xf3,0x0f,0x38,0xf8,0x0e,0xf0,0x1c] 1037enqcmds 7408, %cx 1038 1039// CHECK: enqcmd (%edi), %edi 1040// CHECK: encoding: [0x67,0xf2,0x0f,0x38,0xf8,0x3f] 1041enqcmd (%edi), %edi 1042 1043// CHECK: enqcmds (%edi), %edi 1044// CHECK: encoding: [0x67,0xf3,0x0f,0x38,0xf8,0x3f] 1045enqcmds (%edi), %edi 1046 1047// CHECK: serialize 1048// CHECK: encoding: [0x0f,0x01,0xe8] 1049serialize 1050 1051// CHECK: xsusldtrk 1052// CHECK: encoding: [0xf2,0x0f,0x01,0xe8] 1053xsusldtrk 1054 1055// CHECK: xresldtrk 1056// CHECK: encoding: [0xf2,0x0f,0x01,0xe9] 1057xresldtrk 1058 1059// CHECK: jmp foo 1060// CHECK: encoding: [0xe9,A,A] 1061// CHECK: fixup A - offset: 1, value: foo-2, kind: FK_PCRel_2 1062{disp32} jmp foo 1063foo: 1064 1065// CHECK: je foo 1066// CHECK: encoding: [0x0f,0x84,A,A] 1067// CHECK: fixup A - offset: 2, value: foo-2, kind: FK_PCRel_2 1068{disp32} je foo 1069 1070// CHECK: movl nearer, %ebx 1071// CHECK: encoding: [0x66,0x8b,0x1e,A,A] 1072// CHECK: fixup A - offset: 3, value: nearer, kind: FK_Data_2 1073movl nearer, %ebx 1074