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: [0x66,0x65,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 calll a 553data32 call a 554data32 callw a 555 556// CHECK: ljmpl $1, $2 557// CHECK-NEXT: ljmpl $1, $2 558data32 ljmp $1, $2 559data32 ljmpw $1, $2 560 561// CHECK: incb %al # encoding: [0xfe,0xc0] 562 incb %al 563 564// CHECK: incw %ax # encoding: [0x40] 565 incw %ax 566 567// CHECK: incl %eax # encoding: [0x66,0x40] 568 incl %eax 569 570// CHECK: decb %al # encoding: [0xfe,0xc8] 571 decb %al 572 573// CHECK: decw %ax # encoding: [0x48] 574 decw %ax 575 576// CHECK: decl %eax # encoding: [0x66,0x48] 577 decl %eax 578 579// CHECK: pshufw $14, %mm4, %mm0 # encoding: [0x0f,0x70,0xc4,0x0e] 580pshufw $14, %mm4, %mm0 581 582// CHECK: pshufw $90, %mm4, %mm0 # encoding: [0x0f,0x70,0xc4,0x5a] 583pshufw $90, %mm4, %mm0 584 585// CHECK: aaa 586// CHECK: encoding: [0x37] 587 aaa 588 589// CHECK: aad $1 590// CHECK: encoding: [0xd5,0x01] 591 aad $1 592 593// CHECK: aad 594// CHECK: encoding: [0xd5,0x0a] 595 aad $0xA 596 597// CHECK: aad 598// CHECK: encoding: [0xd5,0x0a] 599 aad 600 601// CHECK: aam $2 602// CHECK: encoding: [0xd4,0x02] 603 aam $2 604 605// CHECK: aam 606// CHECK: encoding: [0xd4,0x0a] 607 aam $0xA 608 609// CHECK: aam 610// CHECK: encoding: [0xd4,0x0a] 611 aam 612 613// CHECK: aas 614// CHECK: encoding: [0x3f] 615 aas 616 617// CHECK: daa 618// CHECK: encoding: [0x27] 619 daa 620 621// CHECK: das 622// CHECK: encoding: [0x2f] 623 das 624 625// CHECK: retw $31438 626// CHECK: encoding: [0xc2,0xce,0x7a] 627 retw $0x7ace 628 629// CHECK: lretw $31438 630// CHECK: encoding: [0xca,0xce,0x7a] 631 lretw $0x7ace 632 633// CHECK: retw $31438 634// CHECK: encoding: [0xc2,0xce,0x7a] 635 ret $0x7ace 636 637// CHECK: lretw $31438 638// CHECK: encoding: [0xca,0xce,0x7a] 639 lret $0x7ace 640 641// CHECK: retl $31438 642// CHECK: encoding: [0x66,0xc2,0xce,0x7a] 643 retl $0x7ace 644 645// CHECK: lretl $31438 646// CHECK: encoding: [0x66,0xca,0xce,0x7a] 647 lretl $0x7ace 648 649// CHECK: bound %bx, 2(%eax) 650// CHECK: encoding: [0x67,0x62,0x58,0x02] 651 bound %bx,2(%eax) 652 653// CHECK: bound %ecx, 4(%ebx) 654// CHECK: encoding: [0x67,0x66,0x62,0x4b,0x04] 655 bound %ecx,4(%ebx) 656 657// CHECK: arpl %bx, %bx 658// CHECK: encoding: [0x63,0xdb] 659 arpl %bx,%bx 660 661// CHECK: arpl %bx, 6(%ecx) 662// CHECK: encoding: [0x67,0x63,0x59,0x06] 663 arpl %bx,6(%ecx) 664 665// CHECK: lgdtw 4(%eax) 666// CHECK: encoding: [0x67,0x0f,0x01,0x50,0x04] 667 lgdtw 4(%eax) 668 669// CHECK: lgdtw 4(%eax) 670// CHECK: encoding: [0x67,0x0f,0x01,0x50,0x04] 671 lgdt 4(%eax) 672 673// CHECK: lgdtl 4(%eax) 674// CHECK: encoding: [0x67,0x66,0x0f,0x01,0x50,0x04] 675 lgdtl 4(%eax) 676 677// CHECK: lidtw 4(%eax) 678// CHECK: encoding: [0x67,0x0f,0x01,0x58,0x04] 679 lidtw 4(%eax) 680 681// CHECK: lidtw 4(%eax) 682// CHECK: encoding: [0x67,0x0f,0x01,0x58,0x04] 683 lidt 4(%eax) 684 685// CHECK: lidtl 4(%eax) 686// CHECK: encoding: [0x67,0x66,0x0f,0x01,0x58,0x04] 687 lidtl 4(%eax) 688 689// CHECK: sgdtw 4(%eax) 690// CHECK: encoding: [0x67,0x0f,0x01,0x40,0x04] 691 sgdtw 4(%eax) 692 693// CHECK: sgdtw 4(%eax) 694// CHECK: encoding: [0x67,0x0f,0x01,0x40,0x04] 695 sgdt 4(%eax) 696 697// CHECK: sgdtl 4(%eax) 698// CHECK: encoding: [0x67,0x66,0x0f,0x01,0x40,0x04] 699 sgdtl 4(%eax) 700 701// CHECK: sidtw 4(%eax) 702// CHECK: encoding: [0x67,0x0f,0x01,0x48,0x04] 703 sidtw 4(%eax) 704 705// CHECK: sidtw 4(%eax) 706// CHECK: encoding: [0x67,0x0f,0x01,0x48,0x04] 707 sidt 4(%eax) 708 709// CHECK: sidtl 4(%eax) 710// CHECK: encoding: [0x67,0x66,0x0f,0x01,0x48,0x04] 711 sidtl 4(%eax) 712 713// CHECK: fcompi %st(2) 714// CHECK: encoding: [0xdf,0xf2] 715 fcompi %st(2), %st 716 717// CHECK: fcompi %st(2) 718// CHECK: encoding: [0xdf,0xf2] 719 fcompi %st(2) 720 721// CHECK: fcompi 722// CHECK: encoding: [0xdf,0xf1] 723 fcompi 724 725// CHECK: fucompi %st(2) 726// CHECK: encoding: [0xdf,0xea] 727 fucompi %st(2),%st 728 729// CHECK: fucompi %st(2) 730// CHECK: encoding: [0xdf,0xea] 731 fucompi %st(2) 732 733// CHECK: fucompi 734// CHECK: encoding: [0xdf,0xe9] 735 fucompi 736 737// CHECK: fldcw 32493 738// CHECK: encoding: [0xd9,0x2e,0xed,0x7e] 739 fldcww 0x7eed 740 741// CHECK: fldcw 32493 742// CHECK: encoding: [0xd9,0x2e,0xed,0x7e] 743 fldcw 0x7eed 744 745// CHECK: fnstcw 32493 746// CHECK: encoding: [0xd9,0x3e,0xed,0x7e] 747 fnstcww 0x7eed 748 749// CHECK: fnstcw 32493 750// CHECK: encoding: [0xd9,0x3e,0xed,0x7e] 751 fnstcw 0x7eed 752 753// CHECK: wait 754// CHECK: encoding: [0x9b] 755 fstcww 0x7eed 756 757// CHECK: wait 758// CHECK: encoding: [0x9b] 759 fstcw 0x7eed 760 761// CHECK: fnstsw 32493 762// CHECK: encoding: [0xdd,0x3e,0xed,0x7e] 763 fnstsww 0x7eed 764 765// CHECK: fnstsw 32493 766// CHECK: encoding: [0xdd,0x3e,0xed,0x7e] 767 fnstsw 0x7eed 768 769// CHECK: wait 770// CHECK: encoding: [0x9b] 771 fstsww 0x7eed 772 773// CHECK: wait 774// CHECK: encoding: [0x9b] 775 fstsw 0x7eed 776 777// CHECK: verr 32493 778// CHECK: encoding: [0x0f,0x00,0x26,0xed,0x7e] 779 verrw 0x7eed 780 781// CHECK: verr 32493 782// CHECK: encoding: [0x0f,0x00,0x26,0xed,0x7e] 783 verr 0x7eed 784 785// CHECK: wait 786// CHECK: encoding: [0x9b] 787 fclex 788 789// CHECK: fnclex 790// CHECK: encoding: [0xdb,0xe2] 791 fnclex 792 793// CHECK: ud2 794// CHECK: encoding: [0x0f,0x0b] 795 ud2 796 797// CHECK: ud2 798// CHECK: encoding: [0x0f,0x0b] 799 ud2a 800 801// CHECK: ud1w %ax, %ax 802// CHECK: encoding: [0x0f,0xb9,0xc0] 803 ud1 %ax, %ax 804 805// CHECK: ud1w %ax, %ax 806// CHECK: encoding: [0x0f,0xb9,0xc0] 807 ud2b %ax, %ax 808 809// CHECK: loope 0 810// CHECK: encoding: [0xe1,A] 811 loopz 0 812 813// CHECK: loopne 0 814// CHECK: encoding: [0xe0,A] 815 loopnz 0 816 817// CHECK: outsb (%si), %dx # encoding: [0x6e] 818// CHECK: outsb 819// CHECK: outsb 820 outsb 821 outsb %ds:(%si), %dx 822 outsb (%si), %dx 823 824// CHECK: outsw (%si), %dx # encoding: [0x6f] 825// CHECK: outsw 826// CHECK: outsw 827 outsw 828 outsw %ds:(%si), %dx 829 outsw (%si), %dx 830 831// CHECK: outsl (%si), %dx # encoding: [0x66,0x6f] 832// CHECK: outsl 833 outsl 834 outsl %ds:(%si), %dx 835 outsl (%si), %dx 836 837// CHECK: insb %dx, %es:(%di) # encoding: [0x6c] 838// CHECK: insb 839 insb 840 insb %dx, %es:(%di) 841 842// CHECK: insw %dx, %es:(%di) # encoding: [0x6d] 843// CHECK: insw 844 insw 845 insw %dx, %es:(%di) 846 847// CHECK: insl %dx, %es:(%di) # encoding: [0x66,0x6d] 848// CHECK: insl 849 insl 850 insl %dx, %es:(%di) 851 852// CHECK: movsb (%si), %es:(%di) # encoding: [0xa4] 853// CHECK: movsb 854// CHECK: movsb 855 movsb 856 movsb %ds:(%si), %es:(%di) 857 movsb (%si), %es:(%di) 858 859// CHECK: movsw (%si), %es:(%di) # encoding: [0xa5] 860// CHECK: movsw 861// CHECK: movsw 862 movsw 863 movsw %ds:(%si), %es:(%di) 864 movsw (%si), %es:(%di) 865 866// CHECK: movsl (%si), %es:(%di) # encoding: [0x66,0xa5] 867// CHECK: movsl 868// CHECK: movsl 869 movsl 870 movsl %ds:(%si), %es:(%di) 871 movsl (%si), %es:(%di) 872 873// CHECK: lodsb (%si), %al # encoding: [0xac] 874// CHECK: lodsb 875// CHECK: lodsb 876// CHECK: lodsb 877// CHECK: lodsb 878 lodsb 879 lodsb %ds:(%si), %al 880 lodsb (%si), %al 881 lods %ds:(%si), %al 882 lods (%si), %al 883 884// CHECK: lodsw (%si), %ax # encoding: [0xad] 885// CHECK: lodsw 886// CHECK: lodsw 887// CHECK: lodsw 888// CHECK: lodsw 889 lodsw 890 lodsw %ds:(%si), %ax 891 lodsw (%si), %ax 892 lods %ds:(%si), %ax 893 lods (%si), %ax 894 895// CHECK: lodsl (%si), %eax # encoding: [0x66,0xad] 896// CHECK: lodsl 897// CHECK: lodsl 898// CHECK: lodsl 899// CHECK: lodsl 900 lodsl 901 lodsl %ds:(%si), %eax 902 lodsl (%si), %eax 903 lods %ds:(%si), %eax 904 lods (%si), %eax 905 906// CHECK: stosb %al, %es:(%di) # encoding: [0xaa] 907// CHECK: stosb 908// CHECK: stosb 909 stosb 910 stosb %al, %es:(%di) 911 stos %al, %es:(%di) 912 913// CHECK: stosw %ax, %es:(%di) # encoding: [0xab] 914// CHECK: stosw 915// CHECK: stosw 916 stosw 917 stosw %ax, %es:(%di) 918 stos %ax, %es:(%di) 919 920// CHECK: stosl %eax, %es:(%di) # encoding: [0x66,0xab] 921// CHECK: stosl 922// CHECK: stosl 923 stosl 924 stosl %eax, %es:(%di) 925 stos %eax, %es:(%di) 926 927// CHECK: strw 928// CHECK: encoding: [0x0f,0x00,0xc8] 929 str %ax 930 931// CHECK: strl 932// CHECK: encoding: [0x66,0x0f,0x00,0xc8] 933 str %eax 934 935 936// CHECK: fsubp %st, %st(1) 937// CHECK: encoding: [0xde,0xe1] 938fsubp %st,%st(1) 939 940// CHECK: fsubp %st, %st(2) 941// CHECK: encoding: [0xde,0xe2] 942fsubp %st, %st(2) 943 944// CHECK: xchgl %eax, %eax 945// CHECK: encoding: [0x66,0x90] 946xchgl %eax, %eax 947 948// CHECK: xchgw %ax, %ax 949// CHECK: encoding: [0x90] 950xchgw %ax, %ax 951 952// CHECK: xchgl %ecx, %eax 953// CHECK: encoding: [0x66,0x91] 954xchgl %ecx, %eax 955 956// CHECK: xchgl %ecx, %eax 957// CHECK: encoding: [0x66,0x91] 958xchgl %eax, %ecx 959 960// CHECK: retw 961// CHECK: encoding: [0xc3] 962retw 963 964// CHECK: retl 965// CHECK: encoding: [0x66,0xc3] 966retl 967 968// CHECK: lretw 969// CHECK: encoding: [0xcb] 970lretw 971 972// CHECK: lretl 973// CHECK: encoding: [0x66,0xcb] 974lretl 975 976// CHECK: data32 977// CHECK: encoding: [0x66] 978data32 979 980// CHECK: lgdtl 4(%eax) 981// CHECK-SAME: encoding: [0x67,0x66,0x0f,0x01,0x50,0x04] 982data32 lgdt 4(%eax) 983 984// CHECK: wbnoinvd 985// CHECK: encoding: [0xf3,0x0f,0x09] 986wbnoinvd 987 988// CHECK: umonitor %ax 989// CHECK: encoding: [0xf3,0x0f,0xae,0xf0] 990umonitor %ax 991 992// CHECK: umonitor %eax 993// CHECK: encoding: [0x67,0xf3,0x0f,0xae,0xf0] 994umonitor %eax 995 996// CHECK: movdir64b (%esi), %eax 997// CHECK: encoding: [0x67,0x66,0x0f,0x38,0xf8,0x06] 998movdir64b (%esi), %eax 999 1000// CHECK: movdir64b (%si), %ax 1001// CHECK: encoding: [0x66,0x0f,0x38,0xf8,0x04] 1002movdir64b (%si), %ax 1003 1004// CHECK: enqcmd (%bx), %di 1005// CHECK: encoding: [0xf2,0x0f,0x38,0xf8,0x3f] 1006enqcmd (%bx), %di 1007 1008// CHECK: enqcmd 8128(%si), %ax 1009// CHECK: encoding: [0xf2,0x0f,0x38,0xf8,0x84,0xc0,0x1f] 1010enqcmd 8128(%si), %ax 1011 1012// CHECK: enqcmd -8192(%di), %bx 1013// CHECK: encoding: [0xf2,0x0f,0x38,0xf8,0x9d,0x00,0xe0] 1014enqcmd -8192(%di), %bx 1015 1016// CHECK: enqcmd 7408, %cx 1017// CHECK: encoding: [0xf2,0x0f,0x38,0xf8,0x0e,0xf0,0x1c] 1018enqcmd 7408, %cx 1019 1020// CHECK: enqcmds (%bx), %di 1021// CHECK: encoding: [0xf3,0x0f,0x38,0xf8,0x3f] 1022enqcmds (%bx), %di 1023 1024// CHECK: enqcmds 8128(%si), %ax 1025// CHECK: encoding: [0xf3,0x0f,0x38,0xf8,0x84,0xc0,0x1f] 1026enqcmds 8128(%si), %ax 1027 1028// CHECK: enqcmds -8192(%di), %bx 1029// CHECK: encoding: [0xf3,0x0f,0x38,0xf8,0x9d,0x00,0xe0] 1030enqcmds -8192(%di), %bx 1031 1032// CHECK: enqcmds 7408, %cx 1033// CHECK: encoding: [0xf3,0x0f,0x38,0xf8,0x0e,0xf0,0x1c] 1034enqcmds 7408, %cx 1035 1036// CHECK: enqcmd (%edi), %edi 1037// CHECK: encoding: [0x67,0xf2,0x0f,0x38,0xf8,0x3f] 1038enqcmd (%edi), %edi 1039 1040// CHECK: enqcmds (%edi), %edi 1041// CHECK: encoding: [0x67,0xf3,0x0f,0x38,0xf8,0x3f] 1042enqcmds (%edi), %edi 1043 1044// CHECK: serialize 1045// CHECK: encoding: [0x0f,0x01,0xe8] 1046serialize 1047 1048// CHECK: xsusldtrk 1049// CHECK: encoding: [0xf2,0x0f,0x01,0xe8] 1050xsusldtrk 1051 1052// CHECK: xresldtrk 1053// CHECK: encoding: [0xf2,0x0f,0x01,0xe9] 1054xresldtrk 1055 1056// CHECK: jmp foo 1057// CHECK: encoding: [0xe9,A,A] 1058// CHECK: fixup A - offset: 1, value: foo-2, kind: FK_PCRel_2 1059{disp32} jmp foo 1060foo: 1061 1062// CHECK: je foo 1063// CHECK: encoding: [0x0f,0x84,A,A] 1064// CHECK: fixup A - offset: 2, value: foo-2, kind: FK_PCRel_2 1065{disp32} je foo 1066 1067// CHECK: movl nearer, %ebx 1068// CHECK: encoding: [0x66,0x8b,0x1e,A,A] 1069// CHECK: fixup A - offset: 3, value: nearer, kind: FK_Data_2 1070movl nearer, %ebx 1071