1// RUN: llvm-mc -triple x86_64-unknown-unknown -show-encoding %s > %t 2> %t.err 2// RUN: FileCheck < %t %s 3// RUN: FileCheck --check-prefix=CHECK-STDERR < %t.err %s 4 5 monitor 6// CHECK: monitor 7// CHECK: encoding: [0x0f,0x01,0xc8] 8 monitor %rax, %rcx, %rdx 9// CHECK: monitor 10// CHECK: encoding: [0x0f,0x01,0xc8] 11 mwait 12// CHECK: mwait 13// CHECK: encoding: [0x0f,0x01,0xc9] 14 mwait %rax, %rcx 15// CHECK: mwait 16// CHECK: encoding: [0x0f,0x01,0xc9] 17 18// Suffix inference: 19 20// CHECK: addl $0, %eax 21 add $0, %eax 22// CHECK: addb $255, %al 23 add $0xFF, %al 24// CHECK: orq %rax, %rdx 25 or %rax, %rdx 26// CHECK: shlq $3, %rax 27 shl $3, %rax 28 29 30// CHECK: subb %al, %al 31 subb %al, %al 32 33// CHECK: addl $24, %eax 34 addl $24, %eax 35 36// CHECK: movl %eax, 10(%ebp) 37 movl %eax, 10(%ebp) 38// CHECK: movl %eax, 10(%ebp,%ebx) 39 movl %eax, 10(%ebp, %ebx) 40// CHECK: movl %eax, 10(%ebp,%ebx,4) 41 movl %eax, 10(%ebp, %ebx, 4) 42// CHECK: movl %eax, 10(,%ebx,4) 43 movl %eax, 10(, %ebx, 4) 44 45// CHECK: movl 0, %eax 46 movl 0, %eax 47// CHECK: movl $0, %eax 48 movl $0, %eax 49 50// CHECK: ret 51 ret 52 53// CHECK: retw 54 retw 55 56// FIXME: Check that this matches SUB32ri8 57// CHECK: subl $1, %eax 58 subl $1, %eax 59 60// FIXME: Check that this matches SUB32ri8 61// CHECK: subl $-1, %eax 62 subl $-1, %eax 63 64// FIXME: Check that this matches SUB32ri 65// CHECK: subl $256, %eax 66 subl $256, %eax 67 68// FIXME: Check that this matches XOR64ri8 69// CHECK: xorq $1, %rax 70 xorq $1, %rax 71 72// FIXME: Check that this matches XOR64ri32 73// CHECK: xorq $256, %rax 74 xorq $256, %rax 75 76// FIXME: Check that this matches SUB8rr 77// CHECK: subb %al, %bl 78 subb %al, %bl 79 80// FIXME: Check that this matches SUB16rr 81// CHECK: subw %ax, %bx 82 subw %ax, %bx 83 84// FIXME: Check that this matches SUB32rr 85// CHECK: subl %eax, %ebx 86 subl %eax, %ebx 87 88// FIXME: Check that this matches the correct instruction. 89// CHECK: callq *%rax 90 call *%rax 91 92// FIXME: Check that this matches the correct instruction. 93// CHECK: shldl %cl, %eax, %ebx 94 shldl %cl, %eax, %ebx 95 96// CHECK: shll $2, %eax 97 shll $2, %eax 98 99// CHECK: shll $2, %eax 100 sall $2, %eax 101 102// CHECK: rep 103// CHECK-NEXT: movsb 104rep # comment 105movsb 106 107// CHECK: rep 108// CHECK: insb 109 rep;insb 110 111// CHECK: rep 112// CHECK: outsb 113 rep;outsb 114 115// CHECK: rep 116// CHECK: movsb 117 rep;movsb 118 119 120// rdar://8470918 121smovb // CHECK: movsb 122smovw // CHECK: movsw 123smovl // CHECK: movsl 124smovq // CHECK: movsq 125 126// rdar://8456361 127// CHECK: rep 128// CHECK: movsl 129 rep movsd 130 131// CHECK: rep 132// CHECK: lodsb 133 rep;lodsb 134 135// CHECK: rep 136// CHECK: stosb 137 rep;stosb 138 139// NOTE: repz and repe have the same opcode as rep 140// CHECK: rep 141// CHECK: cmpsb 142 repz;cmpsb 143 144// NOTE: repnz has the same opcode as repne 145// CHECK: repne 146// CHECK: cmpsb 147 repnz;cmpsb 148 149// NOTE: repe and repz have the same opcode as rep 150// CHECK: rep 151// CHECK: scasb 152 repe;scasb 153 154// CHECK: repne 155// CHECK: scasb 156 repne;scasb 157 158// CHECK: lock 159// CHECK: cmpxchgb %al, (%ebx) 160 lock;cmpxchgb %al, 0(%ebx) 161 162// CHECK: cs 163// CHECK: movb (%eax), %al 164 cs;movb 0(%eax), %al 165 166// CHECK: ss 167// CHECK: movb (%eax), %al 168 ss;movb 0(%eax), %al 169 170// CHECK: ds 171// CHECK: movb (%eax), %al 172 ds;movb 0(%eax), %al 173 174// CHECK: es 175// CHECK: movb (%eax), %al 176 es;movb 0(%eax), %al 177 178// CHECK: fs 179// CHECK: movb (%eax), %al 180 fs;movb 0(%eax), %al 181 182// CHECK: gs 183// CHECK: movb (%eax), %al 184 gs;movb 0(%eax), %al 185 186// CHECK: fadd %st(0) 187// CHECK: fadd %st(1) 188// CHECK: fadd %st(7) 189 190fadd %st(0) 191fadd %st(1) 192fadd %st(7) 193 194// CHECK: leal 0, %eax 195 leal 0, %eax 196 197// rdar://7986634 - Insensitivity on opcodes. 198// CHECK: int3 199INT3 200 201// rdar://8735979 - int $3 -> int3 202// CHECK: int3 203int $3 204 205 206// Allow scale factor without index register. 207// CHECK: movaps %xmm3, (%esi) 208// CHECK-STDERR: warning: scale factor without index register is ignored 209movaps %xmm3, (%esi, 2) 210 211// CHECK: imull $12, %eax 212imul $12, %eax 213 214// CHECK: imull %ecx, %eax 215imull %ecx, %eax 216 217 218// rdar://8208481 219// CHECK: outb %al, $161 220outb %al, $161 221// CHECK: outw %ax, $128 222outw %ax, $128 223// CHECK: inb $161, %al 224inb $161, %al 225 226// rdar://8017621 227// CHECK: pushq $1 228push $1 229 230// rdar://9716860 231pushq $1 232// CHECK: encoding: [0x6a,0x01] 233pushq $1111111 234// CHECK: encoding: [0x68,0x47,0xf4,0x10,0x00] 235 236// rdar://8017530 237// CHECK: sldtw 4 238sldt 4 239 240// rdar://8208499 241// CHECK: cmovnew %bx, %ax 242cmovnz %bx, %ax 243// CHECK: cmovneq %rbx, %rax 244cmovnzq %rbx, %rax 245 246 247// rdar://8407928 248// CHECK: inb $127, %al 249// CHECK: inw %dx, %ax 250// CHECK: outb %al, $127 251// CHECK: outw %ax, %dx 252// CHECK: inl %dx, %eax 253inb $0x7f 254inw %dx 255outb $0x7f 256outw %dx 257inl %dx 258 259 260// PR8114 261// CHECK: outb %al, %dx 262// CHECK: outb %al, %dx 263// CHECK: outw %ax, %dx 264// CHECK: outw %ax, %dx 265// CHECK: outl %eax, %dx 266// CHECK: outl %eax, %dx 267 268out %al, (%dx) 269outb %al, (%dx) 270out %ax, (%dx) 271outw %ax, (%dx) 272out %eax, (%dx) 273outl %eax, (%dx) 274 275// CHECK: inb %dx, %al 276// CHECK: inb %dx, %al 277// CHECK: inw %dx, %ax 278// CHECK: inw %dx, %ax 279// CHECK: inl %dx, %eax 280// CHECK: inl %dx, %eax 281 282in (%dx), %al 283inb (%dx), %al 284in (%dx), %ax 285inw (%dx), %ax 286in (%dx), %eax 287inl (%dx), %eax 288 289//PR15455 290 291outsb (%rsi), (%dx) 292// CHECK: outsb (%rsi), %dx 293outsw (%rsi), (%dx) 294// CHECK: outsw (%rsi), %dx 295outsl (%rsi), (%dx) 296// CHECK: outsl (%rsi), %dx 297 298insb (%dx), %es:(%rdi) 299// CHECK: insb %dx, %es:(%rdi) 300insw (%dx), %es:(%rdi) 301// CHECK: insw %dx, %es:(%rdi) 302insl (%dx), %es:(%rdi) 303// CHECK: insl %dx, %es:(%rdi) 304 305// rdar://8431422 306 307// CHECK: fxch %st(1) 308// CHECK: fucom %st(1) 309// CHECK: fucomp %st(1) 310// CHECK: faddp %st, %st(1) 311// CHECK: faddp %st, %st(0) 312// CHECK: fsubp %st, %st(1) 313// CHECK: fsubrp %st, %st(1) 314// CHECK: fmulp %st, %st(1) 315// CHECK: fdivp %st, %st(1) 316// CHECK: fdivrp %st, %st(1) 317 318fxch 319fucom 320fucomp 321faddp 322faddp %st 323fsubp 324fsubrp 325fmulp 326fdivp 327fdivrp 328 329// CHECK: fcomi %st(1) 330// CHECK: fcomi %st(2) 331// CHECK: fucomi %st(1) 332// CHECK: fucomi %st(2) 333// CHECK: fucomi %st(2) 334 335fcomi 336fcomi %st(2) 337fucomi 338fucomi %st(2) 339fucomi %st(2), %st 340 341// CHECK: fnstsw %ax 342// CHECK: fnstsw %ax 343 344fnstsw 345fnstsw %ax 346 347// rdar://8431880 348// CHECK: rclb %bl 349// CHECK: rcll 3735928559(%ebx,%ecx,8) 350// CHECK: rcrl %ecx 351// CHECK: rcrl 305419896 352rcl %bl 353rcll 0xdeadbeef(%ebx,%ecx,8) 354rcr %ecx 355rcrl 0x12345678 356 357rclb %bl // CHECK: rclb %bl # encoding: [0xd0,0xd3] 358rclb $1, %bl // CHECK: rclb %bl # encoding: [0xd0,0xd3] 359rclb $2, %bl // CHECK: rclb $2, %bl # encoding: [0xc0,0xd3,0x02] 360 361// rdar://8418316 362// PR12173 363// CHECK: shldw %cl, %bx, %dx 364// CHECK: shldw %cl, %bx, %dx 365// CHECK: shldw $1, %bx, %dx 366// CHECK: shldw %cl, %bx, (%rax) 367// CHECK: shldw %cl, %bx, (%rax) 368// CHECK: shrdw %cl, %bx, %dx 369// CHECK: shrdw %cl, %bx, %dx 370// CHECK: shrdw $1, %bx, %dx 371// CHECK: shrdw %cl, %bx, (%rax) 372// CHECK: shrdw %cl, %bx, (%rax) 373 374shld %bx, %dx 375shld %cl, %bx, %dx 376shld $1, %bx, %dx 377shld %bx, (%rax) 378shld %cl, %bx, (%rax) 379shrd %bx, %dx 380shrd %cl, %bx, %dx 381shrd $1, %bx, %dx 382shrd %bx, (%rax) 383shrd %cl, %bx, (%rax) 384 385// CHECK: sldtl %ecx 386// CHECK: encoding: [0x0f,0x00,0xc1] 387// CHECK: sldtw %cx 388// CHECK: encoding: [0x66,0x0f,0x00,0xc1] 389 390sldt %ecx 391sldt %cx 392 393// CHECK: lcalll *3135175374 394// CHECK: ljmpl *3135175374 395// CHECK: lcalll *(%rax) 396// CHECK: ljmpl *(%rax) 397lcall *0xbadeface 398ljmp *0xbadeface 399lcall *(%rax) 400ljmpl *(%rax) 401 402// rdar://8444631 403// CHECK: enter $31438, $0 404// CHECK: encoding: [0xc8,0xce,0x7a,0x00] 405// CHECK: enter $31438, $1 406// CHECK: encoding: [0xc8,0xce,0x7a,0x01] 407// CHECK: enter $31438, $127 408// CHECK: encoding: [0xc8,0xce,0x7a,0x7f] 409enter $0x7ace,$0 410enter $0x7ace,$1 411enter $0x7ace,$0x7f 412 413 414// rdar://8456364 415// CHECK: movw %cs, %ax 416mov %cs, %ax 417 418// rdar://8456391 419fcmovb %st(1), %st // CHECK: fcmovb %st(1), %st 420fcmove %st(1), %st // CHECK: fcmove %st(1), %st 421fcmovbe %st(1), %st // CHECK: fcmovbe %st(1), %st 422fcmovu %st(1), %st // CHECK: fcmovu %st(1), %st 423 424fcmovnb %st(1), %st // CHECK: fcmovnb %st(1), %st 425fcmovne %st(1), %st // CHECK: fcmovne %st(1), %st 426fcmovnbe %st(1), %st // CHECK: fcmovnbe %st(1), %st 427fcmovnu %st(1), %st // CHECK: fcmovnu %st(1), %st 428 429fcmovnae %st(1), %st // CHECK: fcmovb %st(1), %st 430fcmovna %st(1), %st // CHECK: fcmovbe %st(1), %st 431 432fcmovae %st(1), %st // CHECK: fcmovnb %st(1), %st 433fcmova %st(1), %st // CHECK: fcmovnbe %st(1), %st 434 435// rdar://8456417 436.byte (88 + 1) & 15 // CHECK: .byte 9 437 438// rdar://8456412 439mov %rdx, %cr0 440// CHECK: movq %rdx, %cr0 441// CHECK: encoding: [0x0f,0x22,0xc2] 442mov %rdx, %cr4 443// CHECK: movq %rdx, %cr4 444// CHECK: encoding: [0x0f,0x22,0xe2] 445mov %rdx, %cr8 446// CHECK: movq %rdx, %cr8 447// CHECK: encoding: [0x44,0x0f,0x22,0xc2] 448mov %rdx, %cr15 449// CHECK: movq %rdx, %cr15 450// CHECK: encoding: [0x44,0x0f,0x22,0xfa] 451mov %rdx, %dr15 452// CHECK: movq %rdx, %dr15 453// CHECK: encoding: [0x44,0x0f,0x23,0xfa] 454mov %rdx, %db15 455// CHECK: movq %rdx, %dr15 456// CHECK: encoding: [0x44,0x0f,0x23,0xfa] 457 458// rdar://8456371 - Handle commutable instructions written backward. 459// CHECK: faddp %st, %st(1) 460// CHECK: fmulp %st, %st(2) 461faddp %st, %st(1) 462fmulp %st, %st(2) 463 464// rdar://8468087 - Encode these accurately, they are not synonyms. 465// CHECK: fmul %st, %st(1) 466// CHECK: encoding: [0xdc,0xc9] 467// CHECK: fmul %st(1) 468// CHECK: encoding: [0xd8,0xc9] 469fmul %st, %st(1) 470fmul %st(1), %st 471 472// CHECK: fadd %st, %st(1) 473// CHECK: encoding: [0xdc,0xc1] 474// CHECK: fadd %st(1) 475// CHECK: encoding: [0xd8,0xc1] 476fadd %st, %st(1) 477fadd %st(1), %st 478 479 480// rdar://8416805 481// CHECK: xorb %al, %al 482// CHECK: encoding: [0x30,0xc0] 483// CHECK: xorw %di, %di 484// CHECK: encoding: [0x66,0x31,0xff] 485// CHECK: xorl %esi, %esi 486// CHECK: encoding: [0x31,0xf6] 487// CHECK: xorq %rsi, %rsi 488// CHECK: encoding: [0x48,0x31,0xf6] 489clrb %al 490clr %di 491clr %esi 492clr %rsi 493 494// rdar://8456378 495cltq // CHECK: cltq 496cdqe // CHECK: cltq 497cwde // CHECK: cwtl 498cwtl // CHECK: cwtl 499 500// rdar://8416805 501cbw // CHECK: cbtw 502cwd // CHECK: cwtd 503cdq // CHECK: cltd 504cqo // CHECK: cqto 505 506// rdar://8456378 and PR7557 - fstsw 507fstsw %ax 508// CHECK: wait 509// CHECK: fnstsw 510fstsw (%rax) 511// CHECK: wait 512// CHECK: fnstsw (%rax) 513 514// PR8259 515fstcw (%rsp) 516// CHECK: wait 517// CHECK: fnstcw (%rsp) 518 519// PR8259 520fstcw (%rsp) 521// CHECK: wait 522// CHECK: fnstcw (%rsp) 523 524// PR8258 525finit 526// CHECK: wait 527// CHECK: fninit 528 529fsave 32493 530// CHECK: wait 531// CHECK: fnsave 32493 532 533 534// rdar://8456382 - cvtsd2si support. 535cvtsd2si %xmm1, %rax 536// CHECK: cvtsd2si %xmm1, %rax 537// CHECK: encoding: [0xf2,0x48,0x0f,0x2d,0xc1] 538cvtsd2si %xmm1, %eax 539// CHECK: cvtsd2si %xmm1, %eax 540// CHECK: encoding: [0xf2,0x0f,0x2d,0xc1] 541 542cvtsd2siq %xmm0, %rax // CHECK: cvtsd2si %xmm0, %rax 543cvtsd2sil %xmm0, %eax // CHECK: cvtsd2si %xmm0, %eax 544cvtsd2si %xmm0, %rax // CHECK: cvtsd2si %xmm0, %rax 545 546 547cvttpd2dq %xmm1, %xmm0 // CHECK: cvttpd2dq %xmm1, %xmm0 548cvttpd2dq (%rax), %xmm0 // CHECK: cvttpd2dq (%rax), %xmm0 549 550cvttps2dq %xmm1, %xmm0 // CHECK: cvttps2dq %xmm1, %xmm0 551cvttps2dq (%rax), %xmm0 // CHECK: cvttps2dq (%rax), %xmm0 552 553// rdar://8456376 - llvm-mc rejects 'roundss' 554roundss $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x0a,0xc0,0x0e] 555roundps $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x08,0xc0,0x0e] 556roundsd $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x0b,0xc0,0x0e] 557roundpd $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x09,0xc0,0x0e] 558 559 560// rdar://8482675 - 32-bit mem operand support in 64-bit mode (0x67 prefix) 561leal 8(%eax), %esi 562// CHECK: leal 8(%eax), %esi 563// CHECK: encoding: [0x67,0x8d,0x70,0x08] 564leaq 8(%eax), %rsi 565// CHECK: leaq 8(%eax), %rsi 566// CHECK: encoding: [0x67,0x48,0x8d,0x70,0x08] 567leaq 8(%rax), %rsi 568// CHECK: leaq 8(%rax), %rsi 569// CHECK: encoding: [0x48,0x8d,0x70,0x08] 570 571 572cvttpd2dq 0xdeadbeef(%ebx,%ecx,8),%xmm5 573// CHECK: cvttpd2dq 3735928559(%ebx,%ecx,8), %xmm5 574// CHECK: encoding: [0x67,0x66,0x0f,0xe6,0xac,0xcb,0xef,0xbe,0xad,0xde] 575 576// rdar://8490728 - llvm-mc rejects 'movmskpd' 577movmskpd %xmm6, %rax 578// CHECK: movmskpd %xmm6, %eax 579// CHECK: encoding: [0x66,0x0f,0x50,0xc6] 580movmskpd %xmm6, %eax 581// CHECK: movmskpd %xmm6, %eax 582// CHECK: encoding: [0x66,0x0f,0x50,0xc6] 583 584// rdar://8491845 - Gas supports commuted forms of non-commutable instructions. 585fdivrp %st, %st(1) // CHECK: encoding: [0xde,0xf9] 586fdivrp %st(1), %st // CHECK: encoding: [0xde,0xf9] 587 588fsubrp %st, %st(1) // CHECK: encoding: [0xde,0xe9] 589fsubrp %st(1), %st // CHECK: encoding: [0xde,0xe9] 590 591// also PR8861 592fdivp %st, %st(1) // CHECK: encoding: [0xde,0xf1] 593fdivp %st(1), %st // CHECK: encoding: [0xde,0xf1] 594 595 596movl foo(%rip), %eax 597// CHECK: movl foo(%rip), %eax 598// CHECK: encoding: [0x8b,0x05,A,A,A,A] 599// CHECK: fixup A - offset: 2, value: foo-4, kind: reloc_riprel_4byte 600 601movb $12, foo(%rip) 602// CHECK: movb $12, foo(%rip) 603// CHECK: encoding: [0xc6,0x05,A,A,A,A,0x0c] 604// CHECK: fixup A - offset: 2, value: foo-5, kind: reloc_riprel_4byte 605 606movw $12, foo(%rip) 607// CHECK: movw $12, foo(%rip) 608// CHECK: encoding: [0x66,0xc7,0x05,A,A,A,A,0x0c,0x00] 609// CHECK: fixup A - offset: 3, value: foo-6, kind: reloc_riprel_4byte 610 611movl $12, foo(%rip) 612// CHECK: movl $12, foo(%rip) 613// CHECK: encoding: [0xc7,0x05,A,A,A,A,0x0c,0x00,0x00,0x00] 614// CHECK: fixup A - offset: 2, value: foo-8, kind: reloc_riprel_4byte 615 616// rdar://37247000 617movl $12, 1024(%rip) 618// CHECK: movl $12, 1024(%rip) 619// CHECK: encoding: [0xc7,0x05,0x00,0x04,0x00,0x00,0x0c,0x00,0x00,0x00] 620 621movq $12, foo(%rip) 622// CHECK: movq $12, foo(%rip) 623// CHECK: encoding: [0x48,0xc7,0x05,A,A,A,A,0x0c,0x00,0x00,0x00] 624// CHECK: fixup A - offset: 3, value: foo-8, kind: reloc_riprel_4byte 625 626movl foo(%eip), %eax 627// CHECK: movl foo(%eip), %eax 628// CHECK: encoding: [0x67,0x8b,0x05,A,A,A,A] 629// CHECK: fixup A - offset: 3, value: foo-4, kind: reloc_riprel_4byte 630 631movb $12, foo(%eip) 632// CHECK: movb $12, foo(%eip) 633// CHECK: encoding: [0x67,0xc6,0x05,A,A,A,A,0x0c] 634// CHECK: fixup A - offset: 3, value: foo-5, kind: reloc_riprel_4byte 635 636movw $12, foo(%eip) 637// CHECK: movw $12, foo(%eip) 638// CHECK: encoding: [0x67,0x66,0xc7,0x05,A,A,A,A,0x0c,0x00] 639// CHECK: fixup A - offset: 4, value: foo-6, kind: reloc_riprel_4byte 640 641movl $12, foo(%eip) 642// CHECK: movl $12, foo(%eip) 643// CHECK: encoding: [0x67,0xc7,0x05,A,A,A,A,0x0c,0x00,0x00,0x00] 644// CHECK: fixup A - offset: 3, value: foo-8, kind: reloc_riprel_4byte 645 646movq $12, foo(%eip) 647// CHECK: movq $12, foo(%eip) 648// CHECK: encoding: [0x67,0x48,0xc7,0x05,A,A,A,A,0x0c,0x00,0x00,0x00] 649// CHECK: fixup A - offset: 4, value: foo-8, kind: reloc_riprel_4byte 650 651// CHECK: addq $-424, %rax 652// CHECK: encoding: [0x48,0x05,0x58,0xfe,0xff,0xff] 653addq $-424, %rax 654 655 656// CHECK: movq _foo@GOTPCREL(%rip), %rax 657// CHECK: encoding: [0x48,0x8b,0x05,A,A,A,A] 658// CHECK: fixup A - offset: 3, value: _foo@GOTPCREL-4, kind: reloc_riprel_4byte_movq_load 659movq _foo@GOTPCREL(%rip), %rax 660 661// CHECK: movq _foo@GOTPCREL(%rip), %r14 662// CHECK: encoding: [0x4c,0x8b,0x35,A,A,A,A] 663// CHECK: fixup A - offset: 3, value: _foo@GOTPCREL-4, kind: reloc_riprel_4byte_movq_load 664movq _foo@GOTPCREL(%rip), %r14 665 666// CHECK: movq _foo@GOTPCREL(%eip), %rax 667// CHECK: encoding: [0x67,0x48,0x8b,0x05,A,A,A,A] 668// CHECK: fixup A - offset: 4, value: _foo@GOTPCREL-4, kind: reloc_riprel_4byte_movq_load 669movq _foo@GOTPCREL(%eip), %rax 670 671// CHECK: movq _foo@GOTPCREL(%eip), %r14 672// CHECK: encoding: [0x67,0x4c,0x8b,0x35,A,A,A,A] 673// CHECK: fixup A - offset: 4, value: _foo@GOTPCREL-4, kind: reloc_riprel_4byte_movq_load 674movq _foo@GOTPCREL(%eip), %r14 675 676// CHECK: movq (%r13,%rax,8), %r13 677// CHECK: encoding: [0x4d,0x8b,0x6c,0xc5,0x00] 678movq 0x00(%r13,%rax,8),%r13 679 680// CHECK: testq %rax, %rbx 681// CHECK: encoding: [0x48,0x85,0xc3] 682testq %rax, %rbx 683 684// CHECK: cmpq %rbx, %r14 685// CHECK: encoding: [0x49,0x39,0xde] 686 cmpq %rbx, %r14 687 688// rdar://7947167 689 690movsq 691// CHECK: movsq 692// CHECK: encoding: [0x48,0xa5] 693 694movsl 695// CHECK: movsl 696// CHECK: encoding: [0xa5] 697 698stosq 699// CHECK: stosq 700// CHECK: encoding: [0x48,0xab] 701stosl 702// CHECK: stosl 703// CHECK: encoding: [0xab] 704 705 706// Not moffset forms of moves, they are x86-32 only! rdar://7947184 707movb 0, %al // CHECK: movb 0, %al # encoding: [0x8a,0x04,0x25,0x00,0x00,0x00,0x00] 708movw 0, %ax // CHECK: movw 0, %ax # encoding: [0x66,0x8b,0x04,0x25,0x00,0x00,0x00,0x00] 709movl 0, %eax // CHECK: movl 0, %eax # encoding: [0x8b,0x04,0x25,0x00,0x00,0x00,0x00] 710 711// CHECK: pushfq # encoding: [0x9c] 712 pushf 713// CHECK: pushfq # encoding: [0x9c] 714 pushfq 715// CHECK: popfq # encoding: [0x9d] 716 popf 717// CHECK: popfq # encoding: [0x9d] 718 popfq 719 720// CHECK: movabsq $-281474976710654, %rax 721// CHECK: encoding: [0x48,0xb8,0x02,0x00,0x00,0x00,0x00,0x00,0xff,0xff] 722 movabsq $0xFFFF000000000002, %rax 723 724// CHECK: movabsq $-281474976710654, %rax 725// CHECK: encoding: [0x48,0xb8,0x02,0x00,0x00,0x00,0x00,0x00,0xff,0xff] 726 movq $0xFFFF000000000002, %rax 727 728// CHECK: movabsq 81985529216486895, %rax 729// CHECK: encoding: [0x48,0xa1,0xef,0xcd,0xab,0x89,0x67,0x45,0x23,0x01] 730 movabsq 0x123456789abcdef, %rax 731 732// CHECK: movq $-65536, %rax 733// CHECK: encoding: [0x48,0xc7,0xc0,0x00,0x00,0xff,0xff] 734 movq $0xFFFFFFFFFFFF0000, %rax 735 736// CHECK: movq $-256, %rax 737// CHECK: encoding: [0x48,0xc7,0xc0,0x00,0xff,0xff,0xff] 738 movq $0xFFFFFFFFFFFFFF00, %rax 739 740// CHECK: movq $10, %rax 741// CHECK: encoding: [0x48,0xc7,0xc0,0x0a,0x00,0x00,0x00] 742 movq $10, %rax 743 744// CHECK: movq 81985529216486895, %rax 745// CHECK: encoding: [0x48,0x8b,0x04,0x25,0xef,0xcd,0xab,0x89] 746 movq 0x123456789abcdef, %rax 747 748// CHECK: movabsb -6066930261531658096, %al 749// CHECK: encoding: [0xa0,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab] 750 movabsb 0xabcdef1234567890,%al 751 752// CHECK: movabsw -6066930261531658096, %ax 753// CHECK: encoding: [0x66,0xa1,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab] 754 movabsw 0xabcdef1234567890,%ax 755 756// CHECK: movabsl -6066930261531658096, %eax 757// CHECK: encoding: [0xa1,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab] 758 movabsl 0xabcdef1234567890,%eax 759 760// CHECK: movabsq -6066930261531658096, %rax 761// CHECK: encoding: [0x48,0xa1,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab] 762 movabsq 0xabcdef1234567890, %rax 763 764// CHECK: movabsb %al, -6066930261531658096 765// CHECK: encoding: [0xa2,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab] 766 movabsb %al,0xabcdef1234567890 767 768// CHECK: movabsw %ax, -6066930261531658096 769// CHECK: encoding: [0x66,0xa3,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab] 770 movabsw %ax,0xabcdef1234567890 771 772// CHECK: movabsl %eax, -6066930261531658096 773// CHECK: encoding: [0xa3,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab] 774 movabsl %eax,0xabcdef1234567890 775 776// CHECK: movabsq %rax, -6066930261531658096 777// CHECK: encoding: [0x48,0xa3,0x90,0x78,0x56,0x34,0x12,0xef,0xcd,0xab] 778 movabsq %rax,0xabcdef1234567890 779 780// rdar://8014869 781// 782// CHECK: ret 783// CHECK: encoding: [0xc3] 784 retq 785 786// CHECK: sete %al 787// CHECK: encoding: [0x0f,0x94,0xc0] 788 setz %al 789 790// CHECK: setne %al 791// CHECK: encoding: [0x0f,0x95,0xc0] 792 setnz %al 793 794// CHECK: je 0 795// CHECK: encoding: [0x74,A] 796 jz 0 797 798// CHECK: jne 799// CHECK: encoding: [0x75,A] 800 jnz 0 801 802// PR9264 803btl $1, 0 // CHECK: btl $1, 0 # encoding: [0x0f,0xba,0x24,0x25,0x00,0x00,0x00,0x00,0x01] 804bt $1, 0 // CHECK: btl $1, 0 # encoding: [0x0f,0xba,0x24,0x25,0x00,0x00,0x00,0x00,0x01] 805 806// rdar://8017515 807btq $0x01,%rdx 808// CHECK: btq $1, %rdx 809// CHECK: encoding: [0x48,0x0f,0xba,0xe2,0x01] 810 811//rdar://8017633 812// CHECK: movzbl %al, %esi 813// CHECK: encoding: [0x0f,0xb6,0xf0] 814 movzx %al, %esi 815 816// CHECK: movzbq %al, %rsi 817// CHECK: encoding: [0x48,0x0f,0xb6,0xf0] 818 movzx %al, %rsi 819 820// CHECK: movsbw %al, %ax 821// CHECK: encoding: [0x66,0x0f,0xbe,0xc0] 822movsx %al, %ax 823 824// CHECK: movsbl %al, %eax 825// CHECK: encoding: [0x0f,0xbe,0xc0] 826movsx %al, %eax 827 828// CHECK: movswl %ax, %eax 829// CHECK: encoding: [0x0f,0xbf,0xc0] 830movsx %ax, %eax 831 832// CHECK: movsbq %bl, %rax 833// CHECK: encoding: [0x48,0x0f,0xbe,0xc3] 834movsx %bl, %rax 835 836// CHECK: movswq %cx, %rax 837// CHECK: encoding: [0x48,0x0f,0xbf,0xc1] 838movsx %cx, %rax 839 840// CHECK: movslq %edi, %rax 841// CHECK: encoding: [0x48,0x63,0xc7] 842movsx %edi, %rax 843 844// CHECK: movzbw %al, %ax 845// CHECK: encoding: [0x66,0x0f,0xb6,0xc0] 846movzx %al, %ax 847 848// CHECK: movzbl %al, %eax 849// CHECK: encoding: [0x0f,0xb6,0xc0] 850movzx %al, %eax 851 852// CHECK: movzwl %ax, %eax 853// CHECK: encoding: [0x0f,0xb7,0xc0] 854movzx %ax, %eax 855 856// CHECK: movzbq %bl, %rax 857// CHECK: encoding: [0x48,0x0f,0xb6,0xc3] 858movzx %bl, %rax 859 860// CHECK: movzwq %cx, %rax 861// CHECK: encoding: [0x48,0x0f,0xb7,0xc1] 862movzx %cx, %rax 863 864// CHECK: movsbw (%rax), %ax 865// CHECK: encoding: [0x66,0x0f,0xbe,0x00] 866movsx (%rax), %ax 867 868// CHECK: movzbw (%rax), %ax 869// CHECK: encoding: [0x66,0x0f,0xb6,0x00] 870movzx (%rax), %ax 871 872 873// rdar://7873482 874// CHECK: [0x65,0x8b,0x04,0x25,0x7c,0x00,0x00,0x00] 875 movl %gs:124, %eax 876 877// CHECK: jmpq *8(%rax) 878// CHECK: encoding: [0xff,0x60,0x08] 879 jmp *8(%rax) 880 881// CHECK: btq $61, -216(%rbp) 882// CHECK: encoding: [0x48,0x0f,0xba,0xa5,0x28,0xff,0xff,0xff,0x3d] 883 btq $61, -216(%rbp) 884 885 886// rdar://8061602 887L1: 888 jecxz L1 889// CHECK: jecxz L1 890// CHECK: encoding: [0x67,0xe3,A] 891 jrcxz L1 892// CHECK: jrcxz L1 893// CHECK: encoding: [0xe3,A] 894 895// PR8061 896xchgl 368(%rax),%ecx 897// CHECK: xchgl %ecx, 368(%rax) 898xchgl %ecx, 368(%rax) 899// CHECK: xchgl %ecx, 368(%rax) 900 901// rdar://8407548 902xchg 0xdeadbeef(%rbx,%rcx,8),%bl 903// CHECK: xchgb %bl, 3735928559(%rbx,%rcx,8) 904 905 906 907// PR7254 908lock incl 1(%rsp) 909// CHECK: lock 910// CHECK: incl 1(%rsp) 911 912// rdar://8741045 913lock/incl 1(%rsp) 914// CHECK: lock 915// CHECK: incl 1(%rsp) 916 917 918lock addq %rsi, (%rdi) 919// CHECK: lock 920// CHECK: addq %rsi, (%rdi) 921// CHECK: encoding: [0xf0,0x48,0x01,0x37] 922 923lock subq %rsi, (%rdi) 924// CHECK: lock 925// CHECK: subq %rsi, (%rdi) 926// CHECK: encoding: [0xf0,0x48,0x29,0x37] 927 928lock andq %rsi, (%rdi) 929// CHECK: lock 930// CHECK: andq %rsi, (%rdi) 931// CHECK: encoding: [0xf0,0x48,0x21,0x37] 932 933lock orq %rsi, (%rdi) 934// CHECK: lock 935// CHECK: orq %rsi, (%rdi) 936// CHECK: encoding: [0xf0,0x48,0x09,0x37] 937 938lock xorq %rsi, (%rdi) 939// CHECK: lock 940// CHECK: xorq %rsi, (%rdi) 941// CHECK: encoding: [0xf0,0x48,0x31,0x37] 942 943xacquire lock addq %rax, (%rax) 944// CHECK: xacquire 945// CHECK: encoding: [0xf2] 946// CHECK: lock 947// CHECK: addq %rax, (%rax) 948// CHECK: encoding: [0xf0,0x48,0x01,0x00] 949 950xrelease lock addq %rax, (%rax) 951// CHECK: xrelease 952// CHECK: encoding: [0xf3] 953// CHECK: lock 954// CHECK: addq %rax, (%rax) 955// CHECK: encoding: [0xf0,0x48,0x01,0x00] 956 957// rdar://8033482 958rep movsl 959// CHECK: rep 960// CHECK: movsl 961// CHECK: encoding: [0xf3,0xa5] 962 963 964// rdar://8403974 965iret 966// CHECK: iretl 967// CHECK: encoding: [0xcf] 968iretw 969// CHECK: iretw 970// CHECK: encoding: [0x66,0xcf] 971iretl 972// CHECK: iretl 973// CHECK: encoding: [0xcf] 974iretq 975// CHECK: iretq 976// CHECK: encoding: [0x48,0xcf] 977 978// rdar://8416805 979// CHECK: retw $31438 980// CHECK: encoding: [0x66,0xc2,0xce,0x7a] 981 retw $0x7ace 982 983// CHECK: lretw $31438 984// CHECK: encoding: [0x66,0xca,0xce,0x7a] 985 lretw $0x7ace 986 987// PR8592 988lretq // CHECK: lretq # encoding: [0x48,0xcb] 989lretl // CHECK: lretl # encoding: [0xcb] 990lret // CHECK: lretl # encoding: [0xcb] 991lretw // CHECK: lretw # encoding: [0x66,0xcb] 992 993// rdar://8403907 994sysret 995// CHECK: sysretl 996// CHECK: encoding: [0x0f,0x07] 997sysretl 998// CHECK: sysretl 999// CHECK: encoding: [0x0f,0x07] 1000sysretq 1001// CHECK: sysretq 1002// CHECK: encoding: [0x48,0x0f,0x07] 1003 1004// rdar://8407242 1005push %fs 1006// CHECK: pushq %fs 1007// CHECK: encoding: [0x0f,0xa0] 1008push %gs 1009// CHECK: pushq %gs 1010// CHECK: encoding: [0x0f,0xa8] 1011 1012pushw %fs 1013// CHECK: pushw %fs 1014// CHECK: encoding: [0x66,0x0f,0xa0] 1015pushw %gs 1016// CHECK: pushw %gs 1017// CHECK: encoding: [0x66,0x0f,0xa8] 1018 1019 1020pop %fs 1021// CHECK: popq %fs 1022// CHECK: encoding: [0x0f,0xa1] 1023pop %gs 1024// CHECK: popq %gs 1025// CHECK: encoding: [0x0f,0xa9] 1026 1027popw %fs 1028// CHECK: popw %fs 1029// CHECK: encoding: [0x66,0x0f,0xa1] 1030popw %gs 1031// CHECK: popw %gs 1032// CHECK: encoding: [0x66,0x0f,0xa9] 1033 1034// rdar://8438816 1035fildq -8(%rsp) 1036fildll -8(%rsp) 1037// CHECK: fildll -8(%rsp) 1038// CHECK: encoding: [0xdf,0x6c,0x24,0xf8] 1039// CHECK: fildll -8(%rsp) 1040// CHECK: encoding: [0xdf,0x6c,0x24,0xf8] 1041 1042// CHECK: callq a 1043 callq a 1044 1045// CHECK: leaq -40(%rbp), %r15 1046 leaq -40(%rbp), %r15 1047 1048 1049 1050// rdar://8013734 - Alias dr6=db6 1051mov %dr6, %rax 1052mov %db6, %rax 1053// CHECK: movq %dr6, %rax 1054// CHECK: movq %dr6, %rax 1055 1056 1057// INC/DEC encodings. 1058incb %al // CHECK: incb %al # encoding: [0xfe,0xc0] 1059incw %ax // CHECK: incw %ax # encoding: [0x66,0xff,0xc0] 1060incl %eax // CHECK: incl %eax # encoding: [0xff,0xc0] 1061decb %al // CHECK: decb %al # encoding: [0xfe,0xc8] 1062decw %ax // CHECK: decw %ax # encoding: [0x66,0xff,0xc8] 1063decl %eax // CHECK: decl %eax # encoding: [0xff,0xc8] 1064 1065// rdar://8416805 1066// CHECK: lgdtq 4(%rax) 1067// CHECK: encoding: [0x0f,0x01,0x50,0x04] 1068 lgdt 4(%rax) 1069 1070// CHECK: lgdtq 4(%rax) 1071// CHECK: encoding: [0x0f,0x01,0x50,0x04] 1072 lgdtq 4(%rax) 1073 1074// CHECK: lidtq 4(%rax) 1075// CHECK: encoding: [0x0f,0x01,0x58,0x04] 1076 lidt 4(%rax) 1077 1078// CHECK: lidtq 4(%rax) 1079// CHECK: encoding: [0x0f,0x01,0x58,0x04] 1080 lidtq 4(%rax) 1081 1082// CHECK: sgdtq 4(%rax) 1083// CHECK: encoding: [0x0f,0x01,0x40,0x04] 1084 sgdt 4(%rax) 1085 1086// CHECK: sgdtq 4(%rax) 1087// CHECK: encoding: [0x0f,0x01,0x40,0x04] 1088 sgdtq 4(%rax) 1089 1090// CHECK: sidtq 4(%rax) 1091// CHECK: encoding: [0x0f,0x01,0x48,0x04] 1092 sidt 4(%rax) 1093 1094// CHECK: sidtq 4(%rax) 1095// CHECK: encoding: [0x0f,0x01,0x48,0x04] 1096 sidtq 4(%rax) 1097 1098 1099// rdar://8208615 1100mov (%rsi), %gs // CHECK: movw (%rsi), %gs # encoding: [0x8e,0x2e] 1101mov %gs, (%rsi) // CHECK: movw %gs, (%rsi) # encoding: [0x8c,0x2e] 1102 1103 1104// rdar://8431864 1105//CHECK: divb %bl 1106//CHECK: divw %bx 1107//CHECK: divl %ecx 1108//CHECK: divl 3735928559(%ebx,%ecx,8) 1109//CHECK: divl 69 1110//CHECK: divl 32493 1111//CHECK: divl 3133065982 1112//CHECK: divl 305419896 1113//CHECK: idivb %bl 1114//CHECK: idivw %bx 1115//CHECK: idivl %ecx 1116//CHECK: idivl 3735928559(%ebx,%ecx,8) 1117//CHECK: idivl 69 1118//CHECK: idivl 32493 1119//CHECK: idivl 3133065982 1120//CHECK: idivl 305419896 1121 div %bl,%al 1122 div %bx,%ax 1123 div %ecx,%eax 1124 div 0xdeadbeef(%ebx,%ecx,8),%eax 1125 div 0x45,%eax 1126 div 0x7eed,%eax 1127 div 0xbabecafe,%eax 1128 div 0x12345678,%eax 1129 idiv %bl,%al 1130 idiv %bx,%ax 1131 idiv %ecx,%eax 1132 idiv 0xdeadbeef(%ebx,%ecx,8),%eax 1133 idiv 0x45,%eax 1134 idiv 0x7eed,%eax 1135 idiv 0xbabecafe,%eax 1136 idiv 0x12345678,%eax 1137 1138// PR8524 1139movd %rax, %mm5 // CHECK: movq %rax, %mm5 # encoding: [0x48,0x0f,0x6e,0xe8] 1140movd %mm5, %rbx // CHECK: movq %mm5, %rbx # encoding: [0x48,0x0f,0x7e,0xeb] 1141movq %rax, %mm5 // CHECK: movq %rax, %mm5 # encoding: [0x48,0x0f,0x6e,0xe8] 1142movq %mm5, %rbx // CHECK: movq %mm5, %rbx # encoding: [0x48,0x0f,0x7e,0xeb] 1143 1144rex64 // CHECK: rex64 # encoding: [0x48] 1145data16 // CHECK: data16 # encoding: [0x66] 1146 1147// CHECK: data16 1148// CHECK: encoding: [0x66] 1149// CHECK: lgdtq 4(%rax) 1150// CHECK: encoding: [0x0f,0x01,0x50,0x04] 1151data16 lgdt 4(%rax) 1152 1153// PR8855 1154movq 18446744073709551615,%rbx // CHECK: movq -1, %rbx 1155 1156// PR8946 1157movdqu %xmm0, %xmm1 // CHECK: movdqu %xmm0, %xmm1 # encoding: [0xf3,0x0f,0x6f,0xc8] 1158 1159// PR8935 1160xgetbv // CHECK: xgetbv # encoding: [0x0f,0x01,0xd0] 1161xsetbv // CHECK: xsetbv # encoding: [0x0f,0x01,0xd1] 1162 1163// CHECK: loope 0 1164// CHECK: encoding: [0xe1,A] 1165 loopz 0 1166 1167// CHECK: loopne 0 1168// CHECK: encoding: [0xe0,A] 1169 loopnz 0 1170 1171// CHECK: outsb (%rsi), %dx # encoding: [0x6e] 1172// CHECK: outsb 1173// CHECK: outsb 1174 outsb 1175 outsb %ds:(%rsi), %dx 1176 outsb (%rsi), %dx 1177 1178// CHECK: outsw (%rsi), %dx # encoding: [0x66,0x6f] 1179// CHECK: outsw 1180// CHECK: outsw 1181 outsw 1182 outsw %ds:(%rsi), %dx 1183 outsw (%rsi), %dx 1184 1185// CHECK: outsl (%rsi), %dx # encoding: [0x6f] 1186// CHECK: outsl 1187 outsl 1188 outsl %ds:(%rsi), %dx 1189 outsl (%rsi), %dx 1190 1191// CHECK: insb %dx, %es:(%rdi) # encoding: [0x6c] 1192// CHECK: insb 1193 insb 1194 insb %dx, %es:(%rdi) 1195 1196// CHECK: insw %dx, %es:(%rdi) # encoding: [0x66,0x6d] 1197// CHECK: insw 1198 insw 1199 insw %dx, %es:(%rdi) 1200 1201// CHECK: insl %dx, %es:(%rdi) # encoding: [0x6d] 1202// CHECK: insl 1203 insl 1204 insl %dx, %es:(%rdi) 1205 1206// CHECK: movsb (%rsi), %es:(%rdi) # encoding: [0xa4] 1207// CHECK: movsb 1208// CHECK: movsb 1209 movsb 1210 movsb %ds:(%rsi), %es:(%rdi) 1211 movsb (%rsi), %es:(%rdi) 1212 1213// CHECK: movsw (%rsi), %es:(%rdi) # encoding: [0x66,0xa5] 1214// CHECK: movsw 1215// CHECK: movsw 1216 movsw 1217 movsw %ds:(%rsi), %es:(%rdi) 1218 movsw (%rsi), %es:(%rdi) 1219 1220// CHECK: movsl (%rsi), %es:(%rdi) # encoding: [0xa5] 1221// CHECK: movsl 1222// CHECK: movsl 1223 movsl 1224 movsl %ds:(%rsi), %es:(%rdi) 1225 movsl (%rsi), %es:(%rdi) 1226// rdar://10883092 1227// CHECK: movsl 1228 movsl (%rsi), (%rdi) 1229 1230// CHECK: movsq (%rsi), %es:(%rdi) # encoding: [0x48,0xa5] 1231// CHECK: movsq 1232// CHECK: movsq 1233 movsq 1234 movsq %ds:(%rsi), %es:(%rdi) 1235 movsq (%rsi), %es:(%rdi) 1236 1237// CHECK: lodsb (%rsi), %al # encoding: [0xac] 1238// CHECK: lodsb 1239// CHECK: lodsb 1240// CHECK: lodsb 1241// CHECK: lodsb 1242 lodsb 1243 lodsb %ds:(%rsi), %al 1244 lodsb (%rsi), %al 1245 lods %ds:(%rsi), %al 1246 lods (%rsi), %al 1247 1248// CHECK: lodsw (%rsi), %ax # encoding: [0x66,0xad] 1249// CHECK: lodsw 1250// CHECK: lodsw 1251// CHECK: lodsw 1252// CHECK: lodsw 1253 lodsw 1254 lodsw %ds:(%rsi), %ax 1255 lodsw (%rsi), %ax 1256 lods %ds:(%rsi), %ax 1257 lods (%rsi), %ax 1258 1259// CHECK: lodsl (%rsi), %eax # encoding: [0xad] 1260// CHECK: lodsl 1261// CHECK: lodsl 1262// CHECK: lodsl 1263// CHECK: lodsl 1264 lodsl 1265 lodsl %ds:(%rsi), %eax 1266 lodsl (%rsi), %eax 1267 lods %ds:(%rsi), %eax 1268 lods (%rsi), %eax 1269 1270// CHECK: lodsq (%rsi), %rax # encoding: [0x48,0xad] 1271// CHECK: lodsq 1272// CHECK: lodsq 1273// CHECK: lodsq 1274// CHECK: lodsq 1275 lodsq 1276 lodsq %ds:(%rsi), %rax 1277 lodsq (%rsi), %rax 1278 lods %ds:(%rsi), %rax 1279 lods (%rsi), %rax 1280 1281// CHECK: stosb %al, %es:(%rdi) # encoding: [0xaa] 1282// CHECK: stosb 1283// CHECK: stosb 1284 stosb 1285 stosb %al, %es:(%rdi) 1286 stos %al, %es:(%rdi) 1287 1288// CHECK: stosw %ax, %es:(%rdi) # encoding: [0x66,0xab] 1289// CHECK: stosw 1290// CHECK: stosw 1291 stosw 1292 stosw %ax, %es:(%rdi) 1293 stos %ax, %es:(%rdi) 1294 1295// CHECK: stosl %eax, %es:(%rdi) # encoding: [0xab] 1296// CHECK: stosl 1297// CHECK: stosl 1298 stosl 1299 stosl %eax, %es:(%rdi) 1300 stos %eax, %es:(%rdi) 1301 1302// CHECK: stosq %rax, %es:(%rdi) # encoding: [0x48,0xab] 1303// CHECK: stosq 1304// CHECK: stosq 1305 stosq 1306 stosq %rax, %es:(%rdi) 1307 stos %rax, %es:(%rdi) 1308 1309// CHECK: strw 1310// CHECK: encoding: [0x66,0x0f,0x00,0xc8] 1311 str %ax 1312 1313// CHECK: strl 1314// CHECK: encoding: [0x0f,0x00,0xc8] 1315 str %eax 1316 1317// CHECK: strw 1318// CHECK: encoding: [0x66,0x0f,0x00,0xc8] 1319 str %ax 1320 1321// CHECK: strq 1322// CHECK: encoding: [0x48,0x0f,0x00,0xc8] 1323 str %rax 1324 1325// CHECK: movq %rdi, %xmm0 1326// CHECK: encoding: [0x66,0x48,0x0f,0x6e,0xc7] 1327 movq %rdi,%xmm0 1328 1329// CHECK: movq %xmm0, %rax 1330// CHECK: encoding: [0x66,0x48,0x0f,0x7e,0xc0] 1331 movq %xmm0, %rax 1332 1333// CHECK: movntil %eax, (%rdi) 1334// CHECK: encoding: [0x0f,0xc3,0x07] 1335// CHECK: movntil 1336movntil %eax, (%rdi) 1337movnti %eax, (%rdi) 1338 1339// CHECK: movntiq %rax, (%rdi) 1340// CHECK: encoding: [0x48,0x0f,0xc3,0x07] 1341// CHECK: movntiq 1342movntiq %rax, (%rdi) 1343movnti %rax, (%rdi) 1344 1345// CHECK: pclmulqdq $17, %xmm0, %xmm1 1346// CHECK: encoding: [0x66,0x0f,0x3a,0x44,0xc8,0x11] 1347pclmulhqhqdq %xmm0, %xmm1 1348 1349// CHECK: pclmulqdq $1, %xmm0, %xmm1 1350// CHECK: encoding: [0x66,0x0f,0x3a,0x44,0xc8,0x01] 1351pclmulqdq $1, %xmm0, %xmm1 1352 1353// CHECK: pclmulqdq $16, (%rdi), %xmm1 1354// CHECK: encoding: [0x66,0x0f,0x3a,0x44,0x0f,0x10] 1355pclmullqhqdq (%rdi), %xmm1 1356 1357// CHECK: pclmulqdq $0, (%rdi), %xmm1 1358// CHECK: encoding: [0x66,0x0f,0x3a,0x44,0x0f,0x00] 1359pclmulqdq $0, (%rdi), %xmm1 1360 1361// PR10345 1362// CHECK: nop 1363// CHECK: encoding: [0x90] 1364xchgq %rax, %rax 1365 1366// CHECK: xchgl %eax, %eax 1367// CHECK: encoding: [0x87,0xc0] 1368xchgl %eax, %eax 1369 1370// CHECK: xchgw %ax, %ax 1371// CHECK: encoding: [0x66,0x90] 1372xchgw %ax, %ax 1373 1374// CHECK: xchgl %ecx, %eax 1375// CHECK: encoding: [0x91] 1376xchgl %ecx, %eax 1377 1378// CHECK: xchgl %ecx, %eax 1379// CHECK: encoding: [0x91] 1380xchgl %eax, %ecx 1381 1382// CHECK: sysexit 1383// CHECK: encoding: [0x0f,0x35] 1384sysexit 1385 1386// CHECK: sysexitl 1387// CHECK: encoding: [0x0f,0x35] 1388sysexitl 1389 1390// CHECK: sysexitq 1391// CHECK: encoding: [0x48,0x0f,0x35] 1392sysexitq 1393 1394// CHECK: clac 1395// CHECK: encoding: [0x0f,0x01,0xca] 1396clac 1397 1398// CHECK: stac 1399// CHECK: encoding: [0x0f,0x01,0xcb] 1400stac 1401 1402// CHECK: faddp %st, %st(1) 1403// CHECK: fmulp %st, %st(1) 1404// CHECK: fsubp %st, %st(1) 1405// CHECK: fsubrp %st, %st(1) 1406// CHECK: fdivp %st, %st(1) 1407// CHECK: fdivrp %st, %st(1) 1408faddp %st, %st(1) 1409fmulp %st, %st(1) 1410fsubp %st, %st(1) 1411fsubrp %st, %st(1) 1412fdivp %st, %st(1) 1413fdivrp %st, %st(1) 1414 1415// CHECK: faddp %st, %st(1) 1416// CHECK: fmulp %st, %st(1) 1417// CHECK: fsubp %st, %st(1) 1418// CHECK: fsubrp %st, %st(1) 1419// CHECK: fdivp %st, %st(1) 1420// CHECK: fdivrp %st, %st(1) 1421faddp %st(1), %st 1422fmulp %st(1), %st 1423fsubp %st(1), %st 1424fsubrp %st(1), %st 1425fdivp %st(1), %st 1426fdivrp %st(1), %st 1427 1428// CHECK: faddp %st, %st(1) 1429// CHECK: fmulp %st, %st(1) 1430// CHECK: fsubp %st, %st(1) 1431// CHECK: fsubrp %st, %st(1) 1432// CHECK: fdivp %st, %st(1) 1433// CHECK: fdivrp %st, %st(1) 1434faddp %st(1) 1435fmulp %st(1) 1436fsubp %st(1) 1437fsubrp %st(1) 1438fdivp %st(1) 1439fdivrp %st(1) 1440 1441// CHECK: faddp %st, %st(1) 1442// CHECK: fmulp %st, %st(1) 1443// CHECK: fsubp %st, %st(1) 1444// CHECK: fsubrp %st, %st(1) 1445// CHECK: fdivp %st, %st(1) 1446// CHECK: fdivrp %st, %st(1) 1447faddp 1448fmulp 1449fsubp 1450fsubrp 1451fdivp 1452fdivrp 1453 1454// CHECK: fadd %st(1) 1455// CHECK: fmul %st(1) 1456// CHECK: fsub %st(1) 1457// CHECK: fsubr %st(1) 1458// CHECK: fdiv %st(1) 1459// CHECK: fdivr %st(1) 1460fadd %st(1), %st 1461fmul %st(1), %st 1462fsub %st(1), %st 1463fsubr %st(1), %st 1464fdiv %st(1), %st 1465fdivr %st(1), %st 1466 1467// CHECK: fadd %st, %st(1) 1468// CHECK: fmul %st, %st(1) 1469// CHECK: fsub %st, %st(1) 1470// CHECK: fsubr %st, %st(1) 1471// CHECK: fdiv %st, %st(1) 1472// CHECK: fdivr %st, %st(1) 1473fadd %st, %st(1) 1474fmul %st, %st(1) 1475fsub %st, %st(1) 1476fsubr %st, %st(1) 1477fdiv %st, %st(1) 1478fdivr %st, %st(1) 1479 1480// CHECK: fadd %st(1) 1481// CHECK: fmul %st(1) 1482// CHECK: fsub %st(1) 1483// CHECK: fsubr %st(1) 1484// CHECK: fdiv %st(1) 1485// CHECK: fdivr %st(1) 1486fadd %st(1) 1487fmul %st(1) 1488fsub %st(1) 1489fsubr %st(1) 1490fdiv %st(1) 1491fdivr %st(1) 1492 1493// CHECK: movd %xmm0, %eax 1494// CHECK: movq %xmm0, %rax 1495// CHECK: movq %xmm0, %rax 1496// CHECK: vmovd %xmm0, %eax 1497// CHECK: vmovq %xmm0, %rax 1498// CHECK: vmovq %xmm0, %rax 1499movd %xmm0, %eax 1500movq %xmm0, %rax 1501movq %xmm0, %rax 1502vmovd %xmm0, %eax 1503vmovd %xmm0, %rax 1504vmovq %xmm0, %rax 1505 1506// CHECK: seto 3735928559(%r10,%r9,8) 1507// CHECK: encoding: [0x43,0x0f,0x90,0x84,0xca,0xef,0xbe,0xad,0xde] 1508 seto 0xdeadbeef(%r10,%r9,8) 1509 1510// CHECK: monitorx 1511// CHECK: encoding: [0x0f,0x01,0xfa] 1512 monitorx 1513 1514// CHECK: monitorx 1515// CHECK: encoding: [0x0f,0x01,0xfa] 1516 monitorx %rax, %rcx, %rdx 1517 1518// CHECK: mwaitx 1519// CHECK: encoding: [0x0f,0x01,0xfb] 1520 mwaitx 1521 1522// CHECK: mwaitx 1523// CHECK: encoding: [0x0f,0x01,0xfb] 1524 mwaitx %rax, %rcx, %rbx 1525 1526// CHECK: clzero 1527// CHECK: encoding: [0x0f,0x01,0xfc] 1528 clzero 1529 1530// CHECK: clzero 1531// CHECK: encoding: [0x0f,0x01,0xfc] 1532 clzero %rax 1533 1534// CHECK: movl %r15d, (%r15,%r15) 1535// CHECK: encoding: [0x47,0x89,0x3c,0x3f] 1536movl %r15d, (%r15,%r15) 1537 1538// CHECK: nopq 3735928559(%rbx,%rcx,8) 1539// CHECK: encoding: [0x48,0x0f,0x1f,0x84,0xcb,0xef,0xbe,0xad,0xde] 1540nopq 0xdeadbeef(%rbx,%rcx,8) 1541 1542// CHECK: nopq %rax 1543// CHECK: encoding: [0x48,0x0f,0x1f,0xc0] 1544nopq %rax 1545 1546// CHECK: rdpid %rax 1547// CHECK: encoding: [0xf3,0x0f,0xc7,0xf8] 1548rdpid %rax 1549 1550// CHECK: ptwritel 3735928559(%rbx,%rcx,8) 1551// CHECK: encoding: [0xf3,0x0f,0xae,0xa4,0xcb,0xef,0xbe,0xad,0xde] 1552ptwritel 0xdeadbeef(%rbx,%rcx,8) 1553 1554// CHECK: ptwritel %eax 1555// CHECK: encoding: [0xf3,0x0f,0xae,0xe0] 1556ptwritel %eax 1557 1558// CHECK: ptwriteq 3735928559(%rbx,%rcx,8) 1559// CHECK: encoding: [0xf3,0x48,0x0f,0xae,0xa4,0xcb,0xef,0xbe,0xad,0xde] 1560ptwriteq 0xdeadbeef(%rbx,%rcx,8) 1561 1562// CHECK: ptwriteq %rax 1563// CHECK: encoding: [0xf3,0x48,0x0f,0xae,0xe0] 1564ptwriteq %rax 1565 1566// CHECK: wbnoinvd 1567// CHECK: encoding: [0xf3,0x0f,0x09] 1568wbnoinvd 1569 1570// CHECK: cldemote 4(%rax) 1571// CHECK: encoding: [0x0f,0x1c,0x40,0x04] 1572cldemote 4(%rax) 1573 1574// CHECK: cldemote 3735928559(%rbx,%rcx,8) 1575// CHECK: encoding: [0x0f,0x1c,0x84,0xcb,0xef,0xbe,0xad,0xde] 1576cldemote 0xdeadbeef(%rbx,%rcx,8) 1577 1578// CHECK: umonitor %r13 1579// CHECK: encoding: [0xf3,0x41,0x0f,0xae,0xf5] 1580umonitor %r13 1581 1582// CHECK: umonitor %rax 1583// CHECK: encoding: [0xf3,0x0f,0xae,0xf0] 1584umonitor %rax 1585 1586// CHECK: umonitor %eax 1587// CHECK: encoding: [0x67,0xf3,0x0f,0xae,0xf0] 1588umonitor %eax 1589 1590// CHECK: umwait %r15 1591// CHECK: encoding: [0xf2,0x41,0x0f,0xae,0xf7] 1592umwait %r15 1593 1594// CHECK: umwait %ebx 1595// CHECK: encoding: [0xf2,0x0f,0xae,0xf3] 1596umwait %ebx 1597 1598// CHECK: tpause %r15 1599// CHECK: encoding: [0x66,0x41,0x0f,0xae,0xf7] 1600tpause %r15 1601 1602// CHECK: tpause %ebx 1603// CHECK: encoding: [0x66,0x0f,0xae,0xf3] 1604tpause %ebx 1605 1606// CHECK: movdiri %r15, 485498096 1607// CHECK: # encoding: [0x4c,0x0f,0x38,0xf9,0x3c,0x25,0xf0,0x1c,0xf0,0x1c] 1608movdiri %r15, 485498096 1609 1610// CHECK: movdiri %r15, (%rdx) 1611// CHECK: # encoding: [0x4c,0x0f,0x38,0xf9,0x3a] 1612movdiri %r15, (%rdx) 1613 1614// CHECK: movdiri %r15, 64(%rdx) 1615// CHECK: # encoding: [0x4c,0x0f,0x38,0xf9,0x7a,0x40] 1616movdiri %r15, 64(%rdx) 1617 1618// CHECK: movdir64b 485498096, %rax 1619// CHECK: # encoding: [0x66,0x0f,0x38,0xf8,0x04,0x25,0xf0,0x1c,0xf0,0x1c] 1620movdir64b 485498096, %rax 1621 1622// CHECK: movdir64b 485498096, %eax 1623// CHECK: # encoding: [0x67,0x66,0x0f,0x38,0xf8,0x04,0x25,0xf0,0x1c,0xf0,0x1c] 1624movdir64b 485498096, %eax 1625 1626// CHECK: movdir64b (%rdx), %r15 1627// CHECK: # encoding: [0x66,0x44,0x0f,0x38,0xf8,0x3a] 1628movdir64b (%rdx), %r15 1629 1630// CHECK: pconfig 1631// CHECK: # encoding: [0x0f,0x01,0xc5] 1632pconfig 1633 1634// CHECK: encls 1635// CHECK: encoding: [0x0f,0x01,0xcf] 1636encls 1637 1638// CHECK: enclu 1639// CHECK: encoding: [0x0f,0x01,0xd7] 1640enclu 1641 1642// CHECK: enclv 1643// CHECK: encoding: [0x0f,0x01,0xc0] 1644enclv 1645 1646// CHECK: movq %rax, %rbx 1647// CHECK: encoding: [0x48,0x8b,0xd8] 1648movq.s %rax, %rbx 1649 1650// CHECK: movq %rax, %rbx 1651// CHECK: encoding: [0x48,0x8b,0xd8] 1652mov.s %rax, %rbx 1653 1654// CHECK: movl %eax, %ebx 1655// CHECK: encoding: [0x8b,0xd8] 1656movl.s %eax, %ebx 1657 1658// CHECK: movl %eax, %ebx 1659// CHECK: encoding: [0x8b,0xd8] 1660mov.s %eax, %ebx 1661 1662// CHECK: movw %ax, %bx 1663// CHECK: encoding: [0x66,0x8b,0xd8] 1664movw.s %ax, %bx 1665 1666// CHECK: movw %ax, %bx 1667// CHECK: encoding: [0x66,0x8b,0xd8] 1668mov.s %ax, %bx 1669 1670// CHECK: movb %al, %bl 1671// CHECK: encoding: [0x8a,0xd8] 1672movb.s %al, %bl 1673 1674// CHECK: movb %al, %bl 1675// CHECK: encoding: [0x8a,0xd8] 1676mov.s %al, %bl 1677 1678// CHECK: movq %mm0, %mm1 1679// CHECK: encoding: [0x0f,0x7f,0xc1] 1680movq.s %mm0, %mm1 1681 1682// CHECK: movq %xmm0, %xmm1 1683// CHECK: encoding: [0x66,0x0f,0xd6,0xc1] 1684movq.s %xmm0, %xmm1 1685 1686// CHECK: movdqa %xmm0, %xmm1 1687// CHECK: encoding: [0x66,0x0f,0x7f,0xc1] 1688movdqa.s %xmm0, %xmm1 1689 1690// CHECK: movdqu %xmm0, %xmm1 1691// CHECK: encoding: [0xf3,0x0f,0x7f,0xc1] 1692movdqu.s %xmm0, %xmm1 1693 1694// CHECK: movaps %xmm0, %xmm1 1695// CHECK: encoding: [0x0f,0x29,0xc1] 1696movaps.s %xmm0, %xmm1 1697 1698// CHECK: movups %xmm0, %xmm1 1699// CHECK: encoding: [0x0f,0x11,0xc1] 1700movups.s %xmm0, %xmm1 1701 1702// CHECK: movapd %xmm0, %xmm1 1703// CHECK: encoding: [0x66,0x0f,0x29,0xc1] 1704movapd.s %xmm0, %xmm1 1705 1706// CHECK: movupd %xmm0, %xmm1 1707// CHECK: encoding: [0x66,0x0f,0x11,0xc1] 1708movupd.s %xmm0, %xmm1 1709 1710// CHECK: vmovq %xmm0, %xmm8 1711// CHECK: encoding: [0xc4,0xc1,0x79,0xd6,0xc0] 1712vmovq.s %xmm0, %xmm8 1713 1714// CHECK: vmovq %xmm8, %xmm0 1715// CHECK: encoding: [0xc5,0x79,0xd6,0xc0] 1716vmovq.s %xmm8, %xmm0 1717 1718// CHECK: vmovdqa %xmm0, %xmm8 1719// CHECK: encoding: [0xc4,0xc1,0x79,0x7f,0xc0] 1720vmovdqa.s %xmm0, %xmm8 1721 1722// CHECK: vmovdqa %xmm8, %xmm0 1723// CHECK: encoding: [0xc5,0x79,0x7f,0xc0] 1724vmovdqa.s %xmm8, %xmm0 1725 1726// CHECK: vmovdqu %xmm0, %xmm8 1727// CHECK: encoding: [0xc4,0xc1,0x7a,0x7f,0xc0] 1728vmovdqu.s %xmm0, %xmm8 1729 1730// CHECK: vmovdqu %xmm8, %xmm0 1731// CHECK: encoding: [0xc5,0x7a,0x7f,0xc0] 1732vmovdqu.s %xmm8, %xmm0 1733 1734// CHECK: vmovaps %xmm0, %xmm8 1735// CHECK: encoding: [0xc4,0xc1,0x78,0x29,0xc0] 1736vmovaps.s %xmm0, %xmm8 1737 1738// CHECK: vmovaps %xmm8, %xmm0 1739// CHECK: encoding: [0xc5,0x78,0x29,0xc0] 1740vmovaps.s %xmm8, %xmm0 1741 1742// CHECK: vmovups %xmm0, %xmm8 1743// CHECK: encoding: [0xc4,0xc1,0x78,0x11,0xc0] 1744vmovups.s %xmm0, %xmm8 1745 1746// CHECK: vmovups %xmm8, %xmm0 1747// CHECK: encoding: [0xc5,0x78,0x11,0xc0] 1748vmovups.s %xmm8, %xmm0 1749 1750// CHECK: vmovapd %xmm0, %xmm8 1751// CHECK: encoding: [0xc4,0xc1,0x79,0x29,0xc0] 1752vmovapd.s %xmm0, %xmm8 1753 1754// CHECK: vmovapd %xmm8, %xmm0 1755// CHECK: encoding: [0xc5,0x79,0x29,0xc0] 1756vmovapd.s %xmm8, %xmm0 1757 1758// CHECK: vmovupd %xmm0, %xmm8 1759// CHECK: encoding: [0xc4,0xc1,0x79,0x11,0xc0] 1760vmovupd.s %xmm0, %xmm8 1761 1762// CHECK: vmovupd %xmm8, %xmm0 1763// CHECK: encoding: [0xc5,0x79,0x11,0xc0] 1764vmovupd.s %xmm8, %xmm0 1765 1766// __asm __volatile( 1767// "pushf \n\t" 1768// "popf \n\t" 1769// "rep \n\t" 1770// ".byte 0x0f, 0xa7, 0xd0" 1771// ); 1772// CHECK: pushfq 1773// CHECK-NEXT: popfq 1774// CHECK-NEXT: rep 1775// CHECK-NEXT: .byte 15 1776// CHECK-NEXT: .byte 167 1777// CHECK-NEXT: .byte 208 1778pushfq 1779popfq 1780rep 1781.byte 15 1782.byte 167 1783.byte 208 1784 1785// CHECK: lock 1786// CHECK: cmpxchgl 1787 cmp $0, %edx 1788 je 1f 1789 lock 17901: cmpxchgl %ecx,(%rdi) 1791 1792// CHECK: rep 1793// CHECK-NEXT: byte 1794rep 1795.byte 0xa4 # movsb 1796 1797// CHECK: lock 1798// This line has to be the last one in the file 1799lock 1800 1801// CHECK: enqcmd 268435456(%ebp,%r14d,8), %esi 1802// CHECK: encoding: [0x67,0xf2,0x42,0x0f,0x38,0xf8,0xb4,0xf5,0x00,0x00,0x00,0x10] 1803enqcmd 0x10000000(%ebp, %r14d, 8), %esi 1804 1805// CHECK: enqcmd (%r9d), %edi 1806// CHECK: encoding: [0x67,0xf2,0x41,0x0f,0x38,0xf8,0x39] 1807enqcmd (%r9d), %edi 1808 1809// CHECK: enqcmd 8128(%ecx), %eax 1810// CHECK: encoding: [0x67,0xf2,0x0f,0x38,0xf8,0x81,0xc0,0x1f,0x00,0x00] 1811enqcmd 8128(%ecx), %eax 1812 1813// CHECK: enqcmd -8192(%edx), %ebx 1814// CHECK: encoding: [0x67,0xf2,0x0f,0x38,0xf8,0x9a,0x00,0xe0,0xff,0xff] 1815enqcmd -8192(%edx), %ebx 1816 1817// CHECK: enqcmd 485498096, %eax 1818// CHECK: encoding: [0x67,0xf2,0x0f,0x38,0xf8,0x04,0x25,0xf0,0x1c,0xf0,0x1c] 1819enqcmd 485498096, %eax 1820 1821// CHECK: enqcmds 268435456(%ebp,%r14d,8), %esi 1822// CHECK: encoding: [0x67,0xf3,0x42,0x0f,0x38,0xf8,0xb4,0xf5,0x00,0x00,0x00,0x10] 1823enqcmds 0x10000000(%ebp, %r14d, 8), %esi 1824 1825// CHECK: enqcmds (%r9d), %edi 1826// CHECK: encoding: [0x67,0xf3,0x41,0x0f,0x38,0xf8,0x39] 1827enqcmds (%r9d), %edi 1828 1829// CHECK: enqcmds 8128(%ecx), %eax 1830// CHECK: encoding: [0x67,0xf3,0x0f,0x38,0xf8,0x81,0xc0,0x1f,0x00,0x00] 1831enqcmds 8128(%ecx), %eax 1832 1833// CHECK: enqcmds -8192(%edx), %ebx 1834// CHECK: encoding: [0x67,0xf3,0x0f,0x38,0xf8,0x9a,0x00,0xe0,0xff,0xff] 1835enqcmds -8192(%edx), %ebx 1836 1837// CHECK: enqcmds 485498096, %eax 1838// CHECK: encoding: [0x67,0xf3,0x0f,0x38,0xf8,0x04,0x25,0xf0,0x1c,0xf0,0x1c] 1839enqcmds 485498096, %eax 1840 1841// CHECK: enqcmd 268435456(%rbp,%r14,8), %rsi 1842// CHECK: encoding: [0xf2,0x42,0x0f,0x38,0xf8,0xb4,0xf5,0x00,0x00,0x00,0x10] 1843enqcmd 0x10000000(%rbp, %r14, 8), %rsi 1844 1845// CHECK: enqcmd (%r9), %rdi 1846// CHECK: encoding: [0xf2,0x41,0x0f,0x38,0xf8,0x39] 1847enqcmd (%r9), %rdi 1848 1849// CHECK: enqcmd 8128(%rcx), %rax 1850// CHECK: encoding: [0xf2,0x0f,0x38,0xf8,0x81,0xc0,0x1f,0x00,0x00] 1851enqcmd 8128(%rcx), %rax 1852 1853// CHECK: enqcmd -8192(%rdx), %rbx 1854// CHECK: encoding: [0xf2,0x0f,0x38,0xf8,0x9a,0x00,0xe0,0xff,0xff] 1855enqcmd -8192(%rdx), %rbx 1856 1857// CHECK: enqcmd 485498096, %rax 1858// CHECK: encoding: [0xf2,0x0f,0x38,0xf8,0x04,0x25,0xf0,0x1c,0xf0,0x1c] 1859enqcmd 485498096, %rax 1860 1861// CHECK: enqcmds 268435456(%rbp,%r14,8), %rsi 1862// CHECK: encoding: [0xf3,0x42,0x0f,0x38,0xf8,0xb4,0xf5,0x00,0x00,0x00,0x10] 1863enqcmds 0x10000000(%rbp, %r14, 8), %rsi 1864 1865// CHECK: enqcmds (%r9), %rdi 1866// CHECK: encoding: [0xf3,0x41,0x0f,0x38,0xf8,0x39] 1867enqcmds (%r9), %rdi 1868 1869// CHECK: enqcmds 8128(%rcx), %rax 1870// CHECK: encoding: [0xf3,0x0f,0x38,0xf8,0x81,0xc0,0x1f,0x00,0x00] 1871enqcmds 8128(%rcx), %rax 1872 1873// CHECK: enqcmds -8192(%rdx), %rbx 1874// CHECK: encoding: [0xf3,0x0f,0x38,0xf8,0x9a,0x00,0xe0,0xff,0xff] 1875enqcmds -8192(%rdx), %rbx 1876 1877// CHECK: enqcmds 485498096, %rax 1878// CHECK: encoding: [0xf3,0x0f,0x38,0xf8,0x04,0x25,0xf0,0x1c,0xf0,0x1c] 1879enqcmds 485498096, %rax 1880