166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// RUN: llvm-mc -triple x86_64-unknown-unknown -show-encoding %s > %t 2> %t.err 266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// RUN: FileCheck < %t %s 366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// RUN: FileCheck --check-prefix=CHECK-STDERR < %t.err %s 466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman monitor 666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: monitor 766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x0f,0x01,0xc8] 866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman monitor %rax, %rcx, %rdx 966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: monitor 1066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x0f,0x01,0xc8] 1166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman mwait 1266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: mwait 1366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x0f,0x01,0xc9] 1466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman mwait %rax, %rcx 1566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: mwait 1666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x0f,0x01,0xc9] 1766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 1866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// Suffix inference: 1966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 2066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: addl $0, %eax 2166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman add $0, %eax 2266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: addb $255, %al 2366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman add $0xFF, %al 2466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: orq %rax, %rdx 2566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman or %rax, %rdx 2666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: shlq $3, %rax 2766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman shl $3, %rax 2866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 2966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 3066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: subb %al, %al 3166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman subb %al, %al 3266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 3366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: addl $24, %eax 3466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman addl $24, %eax 3566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 3666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movl %eax, 10(%ebp) 3766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman movl %eax, 10(%ebp) 3866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movl %eax, 10(%ebp,%ebx) 3966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman movl %eax, 10(%ebp, %ebx) 4066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movl %eax, 10(%ebp,%ebx,4) 4166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman movl %eax, 10(%ebp, %ebx, 4) 4266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movl %eax, 10(,%ebx,4) 4366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman movl %eax, 10(, %ebx, 4) 4466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 4566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movl 0, %eax 4666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman movl 0, %eax 4766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movl $0, %eax 4866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman movl $0, %eax 4966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 5066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: ret 5166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman ret 5266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 5366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// FIXME: Check that this matches SUB32ri8 5466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: subl $1, %eax 5566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman subl $1, %eax 5666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 5766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// FIXME: Check that this matches SUB32ri8 5866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: subl $-1, %eax 5966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman subl $-1, %eax 6066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 6166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// FIXME: Check that this matches SUB32ri 6266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: subl $256, %eax 6366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman subl $256, %eax 6466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 6566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// FIXME: Check that this matches XOR64ri8 6666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: xorq $1, %rax 6766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman xorq $1, %rax 6866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 6966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// FIXME: Check that this matches XOR64ri32 7066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: xorq $256, %rax 7166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman xorq $256, %rax 7266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 7366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// FIXME: Check that this matches SUB8rr 7466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: subb %al, %bl 7566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman subb %al, %bl 7666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 7766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// FIXME: Check that this matches SUB16rr 7866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: subw %ax, %bx 7966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman subw %ax, %bx 8066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 8166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// FIXME: Check that this matches SUB32rr 8266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: subl %eax, %ebx 8366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman subl %eax, %ebx 8466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 8566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// FIXME: Check that this matches the correct instruction. 8666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: callq *%rax 8766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman call *%rax 8866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 8966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// FIXME: Check that this matches the correct instruction. 9066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: shldl %cl, %eax, %ebx 9166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman shldl %cl, %eax, %ebx 9266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 9366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: shll $2, %eax 9466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman shll $2, %eax 9566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 9666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: shll $2, %eax 9766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman sall $2, %eax 9866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 9966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: rep 10066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: insb 10166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman rep;insb 10266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 10366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: rep 10466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: outsb 10566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman rep;outsb 10666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 10766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: rep 10866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movsb 10966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman rep;movsb 11066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 11166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 11266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8470918 11366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumansmovb // CHECK: movsb 11466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumansmovw // CHECK: movsw 11566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumansmovl // CHECK: movsd 11666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumansmovq // CHECK: movsq 11766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 11866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8456361 11966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: rep 12066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movsd 12166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman rep movsd 12266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 12366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: rep 12466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: lodsb 12566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman rep;lodsb 12666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 12766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: rep 12866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: stosb 12966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman rep;stosb 13066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 13166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// NOTE: repz and repe have the same opcode as rep 13266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: rep 13366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: cmpsb 13466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman repz;cmpsb 13566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 13666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// NOTE: repnz has the same opcode as repne 13766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: repne 13866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: cmpsb 13966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman repnz;cmpsb 14066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 14166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// NOTE: repe and repz have the same opcode as rep 14266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: rep 14366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: scasb 14466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman repe;scasb 14566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 14666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: repne 14766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: scasb 14866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman repne;scasb 14966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 15066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: lock 15166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: cmpxchgb %al, (%ebx) 15266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman lock;cmpxchgb %al, 0(%ebx) 15366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 15466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: cs 15566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movb (%eax), %al 15666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman cs;movb 0(%eax), %al 15766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 15866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: ss 15966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movb (%eax), %al 16066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman ss;movb 0(%eax), %al 16166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 16266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: ds 16366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movb (%eax), %al 16466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman ds;movb 0(%eax), %al 16566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 16666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: es 16766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movb (%eax), %al 16866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman es;movb 0(%eax), %al 16966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 17066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fs 17166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movb (%eax), %al 17266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman fs;movb 0(%eax), %al 17366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 17466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: gs 17566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movb (%eax), %al 17666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman gs;movb 0(%eax), %al 17766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 17866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fadd %st(0) 17966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fadd %st(1) 18066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fadd %st(7) 18166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 18266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfadd %st(0) 18366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfadd %st(1) 18466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfadd %st(7) 18566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 18666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: leal 0, %eax 18766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman leal 0, %eax 18866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 18966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://7986634 - Insensitivity on opcodes. 19066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: int3 19166b8ab22586debccb1f787d4d52b7f042d4ddeb8John BaumanINT3 19266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 19366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8735979 - int $3 -> int3 19466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: int3 19566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanint $3 19666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 19766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 19866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// Allow scale factor without index register. 19966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movaps %xmm3, (%esi) 20066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK-STDERR: warning: scale factor without index register is ignored 20166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovaps %xmm3, (%esi, 2) 20266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 20366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: imull $12, %eax, %eax 20466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanimul $12, %eax 20566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 20666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: imull %ecx, %eax 20766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanimull %ecx, %eax 20866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 20966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 21066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8208481 21166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: outb %al, $161 21266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanoutb %al, $161 21366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: outw %ax, $128 21466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanoutw %ax, $128 21566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: inb $161, %al 21666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumaninb $161, %al 21766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 21866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8017621 21966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: pushq $1 22066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanpush $1 22166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 22266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://9716860 22366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanpushq $1 22466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x6a,0x01] 22566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanpushq $1111111 22666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x68,0x47,0xf4,0x10,0x00] 22766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 22866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8017530 22966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: sldtw 4 23066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumansldt 4 23166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 23266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8208499 23366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: cmovnew %bx, %ax 23466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumancmovnz %bx, %ax 23566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: cmovneq %rbx, %rax 23666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumancmovnzq %rbx, %rax 23766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 23866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 23966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8407928 24066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: inb $127, %al 24166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: inw %dx 24266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: outb %al, $127 24366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: outw %dx 24466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: inl %dx 24566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumaninb $0x7f 24666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumaninw %dx 24766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanoutb $0x7f 24866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanoutw %dx 24966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumaninl %dx 25066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 25166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 25266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// PR8114 25366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: outb %dx 25466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: outb %dx 25566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: outw %dx 25666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: outw %dx 25766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: outl %dx 25866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: outl %dx 25966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 26066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanout %al, (%dx) 26166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanoutb %al, (%dx) 26266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanout %ax, (%dx) 26366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanoutw %ax, (%dx) 26466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanout %eax, (%dx) 26566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanoutl %eax, (%dx) 26666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 26766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: inb %dx 26866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: inb %dx 26966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: inw %dx 27066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: inw %dx 27166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: inl %dx 27266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: inl %dx 27366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 27466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanin (%dx), %al 27566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumaninb (%dx), %al 27666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanin (%dx), %ax 27766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumaninw (%dx), %ax 27866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanin (%dx), %eax 27966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumaninl (%dx), %eax 28066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 28166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8431422 28266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 28366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fxch 28466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fucom 28566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fucomp 28666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: faddp 28766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: faddp %st(0) 28866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fsubp 28966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fsubrp 29066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fmulp 29166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fdivp 29266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fdivrp 29366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 29466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfxch 29566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfucom 29666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfucomp 29766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfaddp 29866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfaddp %st 29966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfsubp 30066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfsubrp 30166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfmulp 30266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfdivp 30366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfdivrp 30466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 30566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fcomi 30666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fcomi %st(2) 30766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fucomi 30866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fucomi %st(2) 30966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fucomi %st(2) 31066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 31166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfcomi 31266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfcomi %st(2) 31366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfucomi 31466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfucomi %st(2) 31566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfucomi %st(2), %st 31666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 31766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fnstsw 31866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fnstsw 31966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fnstsw 32066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fnstsw 32166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 32266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfnstsw 32366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfnstsw %ax 32466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfnstsw %eax 32566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfnstsw %al 32666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 32766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8431880 32866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: rclb %bl 32966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: rcll 3735928559(%ebx,%ecx,8) 33066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: rcrl %ecx 33166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: rcrl 305419896 33266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanrcl %bl 33366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanrcll 0xdeadbeef(%ebx,%ecx,8) 33466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanrcr %ecx 33566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanrcrl 0x12345678 33666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 33766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanrclb %bl // CHECK: rclb %bl # encoding: [0xd0,0xd3] 33866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanrclb $1, %bl // CHECK: rclb %bl # encoding: [0xd0,0xd3] 33966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanrclb $2, %bl // CHECK: rclb $2, %bl # encoding: [0xc0,0xd3,0x02] 34066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 34166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8418316 34266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: shldw $1, %bx, %bx 34366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: shldw $1, %bx, %bx 34466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: shrdw $1, %bx, %bx 34566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: shrdw $1, %bx, %bx 34666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 34766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanshld %bx,%bx 34866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanshld $1, %bx,%bx 34966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanshrd %bx,%bx 35066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanshrd $1, %bx,%bx 35166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 35266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: sldtl %ecx 35366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x0f,0x00,0xc1] 35466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: sldtw %cx 35566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x66,0x0f,0x00,0xc1] 35666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 35766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumansldt %ecx 35866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumansldt %cx 35966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 36066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: lcalll *3135175374 36166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: ljmpl *3135175374 36266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanlcall *0xbadeface 36366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanljmp *0xbadeface 36466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 36566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 36666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8444631 36766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: enter $31438, $0 36866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0xc8,0xce,0x7a,0x00] 36966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: enter $31438, $1 37066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0xc8,0xce,0x7a,0x01] 37166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: enter $31438, $127 37266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0xc8,0xce,0x7a,0x7f] 37366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanenter $0x7ace,$0 37466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanenter $0x7ace,$1 37566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanenter $0x7ace,$0x7f 37666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 37766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 37866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8456364 37966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movw %cs, %ax 38066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmov %CS, %ax 38166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 38266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8456391 38366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfcmovb %st(1), %st(0) // CHECK: fcmovb %st(1), %st(0) 38466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfcmove %st(1), %st(0) // CHECK: fcmove %st(1), %st(0) 38566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfcmovbe %st(1), %st(0) // CHECK: fcmovbe %st(1), %st(0) 38666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfcmovu %st(1), %st(0) // CHECK: fcmovu %st(1), %st(0) 38766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 38866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfcmovnb %st(1), %st(0) // CHECK: fcmovnb %st(1), %st(0) 38966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfcmovne %st(1), %st(0) // CHECK: fcmovne %st(1), %st(0) 39066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfcmovnbe %st(1), %st(0) // CHECK: fcmovnbe %st(1), %st(0) 39166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfcmovnu %st(1), %st(0) // CHECK: fcmovnu %st(1), %st(0) 39266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 39366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfcmovnae %st(1), %st(0) // CHECK: fcmovb %st(1), %st(0) 39466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfcmovna %st(1), %st(0) // CHECK: fcmovbe %st(1), %st(0) 39566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 39666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfcmovae %st(1), %st(0) // CHECK: fcmovnb %st(1), %st(0) 39766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfcmova %st(1), %st(0) // CHECK: fcmovnbe %st(1), %st(0) 39866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 39966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8456417 40066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman.byte 88 + 1 & 15 // CHECK: .byte 9 40166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 40266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8456412 40366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmov %rdx, %cr0 40466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movq %rdx, %cr0 40566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x0f,0x22,0xc2] 40666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmov %rdx, %cr4 40766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movq %rdx, %cr4 40866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x0f,0x22,0xe2] 40966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmov %rdx, %cr8 41066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movq %rdx, %cr8 41166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x44,0x0f,0x22,0xc2] 41266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmov %rdx, %cr15 41366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movq %rdx, %cr15 41466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x44,0x0f,0x22,0xfa] 41566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 41666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8456371 - Handle commutable instructions written backward. 41766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: faddp %st(1) 41866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fmulp %st(2) 41966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfaddp %st, %st(1) 42066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfmulp %st, %st(2) 42166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 42266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8468087 - Encode these accurately, they are not synonyms. 42366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fmul %st(0), %st(1) 42466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0xdc,0xc9] 42566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fmul %st(1) 42666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0xd8,0xc9] 42766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfmul %st, %st(1) 42866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfmul %st(1), %st 42966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 43066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fadd %st(0), %st(1) 43166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0xdc,0xc1] 43266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fadd %st(1) 43366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0xd8,0xc1] 43466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfadd %st, %st(1) 43566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfadd %st(1), %st 43666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 43766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 43866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8416805 43966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: xorb %al, %al 44066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x30,0xc0] 44166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: xorw %di, %di 44266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x66,0x31,0xff] 44366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: xorl %esi, %esi 44466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x31,0xf6] 44566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: xorq %rsi, %rsi 44666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x48,0x31,0xf6] 44766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanclrb %al 44866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanclr %di 44966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanclr %esi 45066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanclr %rsi 45166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 45266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8456378 45366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumancltq // CHECK: cltq 45466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumancdqe // CHECK: cltq 45566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumancwde // CHECK: cwtl 45666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumancwtl // CHECK: cwtl 45766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 45866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8416805 45966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumancbw // CHECK: cbtw 46066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumancwd // CHECK: cwtd 46166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumancdq // CHECK: cltd 46266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 46366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8456378 and PR7557 - fstsw 46466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfstsw %ax 46566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: wait 46666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fnstsw 46766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfstsw (%rax) 46866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: wait 46966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fnstsw (%rax) 47066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 47166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// PR8259 47266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfstcw (%rsp) 47366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: wait 47466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fnstcw (%rsp) 47566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 47666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// PR8259 47766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfstcw (%rsp) 47866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: wait 47966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fnstcw (%rsp) 48066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 48166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// PR8258 48266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfinit 48366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: wait 48466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fninit 48566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 48666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfsave 32493 48766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: wait 48866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fnsave 32493 48966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 49066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 49166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8456382 - cvtsd2si support. 49266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumancvtsd2si %xmm1, %rax 49366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: cvtsd2siq %xmm1, %rax 49466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0xf2,0x48,0x0f,0x2d,0xc1] 49566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumancvtsd2si %xmm1, %eax 49666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: cvtsd2sil %xmm1, %eax 49766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0xf2,0x0f,0x2d,0xc1] 49866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 49966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumancvtsd2siq %xmm0, %rax // CHECK: cvtsd2siq %xmm0, %rax 50066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumancvtsd2sil %xmm0, %eax // CHECK: cvtsd2sil %xmm0, %eax 50166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumancvtsd2si %xmm0, %rax // CHECK: cvtsd2siq %xmm0, %rax 50266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 50366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 50466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumancvttpd2dq %xmm1, %xmm0 // CHECK: cvttpd2dq %xmm1, %xmm0 50566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumancvttpd2dq (%rax), %xmm0 // CHECK: cvttpd2dq (%rax), %xmm0 50666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 50766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumancvttps2dq %xmm1, %xmm0 // CHECK: cvttps2dq %xmm1, %xmm0 50866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumancvttps2dq (%rax), %xmm0 // CHECK: cvttps2dq (%rax), %xmm0 50966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 51066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8456376 - llvm-mc rejects 'roundss' 51166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanroundss $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x0a,0xc0,0x0e] 51266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanroundps $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x08,0xc0,0x0e] 51366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanroundsd $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x0b,0xc0,0x0e] 51466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanroundpd $0xE, %xmm0, %xmm0 // CHECK: encoding: [0x66,0x0f,0x3a,0x09,0xc0,0x0e] 51566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 51666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 51766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8482675 - 32-bit mem operand support in 64-bit mode (0x67 prefix) 51866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanleal 8(%eax), %esi 51966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: leal 8(%eax), %esi 52066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x67,0x8d,0x70,0x08] 52166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanleaq 8(%eax), %rsi 52266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: leaq 8(%eax), %rsi 52366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x67,0x48,0x8d,0x70,0x08] 52466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanleaq 8(%rax), %rsi 52566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: leaq 8(%rax), %rsi 52666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x48,0x8d,0x70,0x08] 52766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 52866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 52966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumancvttpd2dq 0xdeadbeef(%ebx,%ecx,8),%xmm5 53066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: cvttpd2dq 3735928559(%ebx,%ecx,8), %xmm5 53166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x67,0x66,0x0f,0xe6,0xac,0xcb,0xef,0xbe,0xad,0xde] 53266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 53366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8490728 - llvm-mc rejects 'movmskpd' 53466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovmskpd %xmm6, %rax 53566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movmskpd %xmm6, %rax 53666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x66,0x48,0x0f,0x50,0xc6] 53766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovmskpd %xmm6, %eax 53866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movmskpd %xmm6, %eax 53966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x66,0x0f,0x50,0xc6] 54066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 54166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8491845 - Gas supports commuted forms of non-commutable instructions. 54266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfdivrp %st(0), %st(1) // CHECK: encoding: [0xde,0xf9] 54366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfdivrp %st(1), %st(0) // CHECK: encoding: [0xde,0xf9] 54466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 54566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfsubrp %ST(0), %ST(1) // CHECK: encoding: [0xde,0xe9] 54666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfsubrp %ST(1), %ST(0) // CHECK: encoding: [0xde,0xe9] 54766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 54866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// also PR8861 54966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfdivp %st(0), %st(1) // CHECK: encoding: [0xde,0xf1] 55066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfdivp %st(1), %st(0) // CHECK: encoding: [0xde,0xf1] 55166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 55266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 55366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovl foo(%rip), %eax 55466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movl foo(%rip), %eax 55566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x8b,0x05,A,A,A,A] 55666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fixup A - offset: 2, value: foo-4, kind: reloc_riprel_4byte 55766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 55866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovb $12, foo(%rip) 55966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movb $12, foo(%rip) 56066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0xc6,0x05,A,A,A,A,0x0c] 56166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fixup A - offset: 2, value: foo-5, kind: reloc_riprel_4byte 56266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 56366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovw $12, foo(%rip) 56466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movw $12, foo(%rip) 56566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x66,0xc7,0x05,A,A,A,A,0x0c,0x00] 56666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fixup A - offset: 3, value: foo-6, kind: reloc_riprel_4byte 56766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 56866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovl $12, foo(%rip) 56966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movl $12, foo(%rip) 57066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0xc7,0x05,A,A,A,A,0x0c,0x00,0x00,0x00] 57166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fixup A - offset: 2, value: foo-8, kind: reloc_riprel_4byte 57266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 57366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovq $12, foo(%rip) 57466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movq $12, foo(%rip) 57566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x48,0xc7,0x05,A,A,A,A,0x0c,0x00,0x00,0x00] 57666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fixup A - offset: 3, value: foo-8, kind: reloc_riprel_4byte 57766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 57866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: addq $-424, %rax 57966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x48,0x05,0x58,0xfe,0xff,0xff] 58066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanaddq $-424, %rax 58166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 58266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 58366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movq _foo@GOTPCREL(%rip), %rax 58466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x48,0x8b,0x05,A,A,A,A] 58566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fixup A - offset: 3, value: _foo@GOTPCREL-4, kind: reloc_riprel_4byte_movq_load 58666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovq _foo@GOTPCREL(%rip), %rax 58766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 58866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movq _foo@GOTPCREL(%rip), %r14 58966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x4c,0x8b,0x35,A,A,A,A] 59066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fixup A - offset: 3, value: _foo@GOTPCREL-4, kind: reloc_riprel_4byte_movq_load 59166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovq _foo@GOTPCREL(%rip), %r14 59266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 59366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 59466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movq (%r13,%rax,8), %r13 59566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x4d,0x8b,0x6c,0xc5,0x00] 59666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovq 0x00(%r13,%rax,8),%r13 59766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 59866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: testq %rax, %rbx 59966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x48,0x85,0xd8] 60066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumantestq %rax, %rbx 60166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 60266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: cmpq %rbx, %r14 60366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x49,0x39,0xde] 60466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman cmpq %rbx, %r14 60566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 60666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://7947167 60766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 60866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovsq 60966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movsq 61066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x48,0xa5] 61166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 61266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovsl 61366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movsd 61466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0xa5] 61566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 61666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanstosq 61766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: stosq 61866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x48,0xab] 61966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanstosl 62066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: stosl 62166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0xab] 62266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 62366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 62466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// Not moffset forms of moves, they are x86-32 only! rdar://7947184 62566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovb 0, %al // CHECK: movb 0, %al # encoding: [0x8a,0x04,0x25,0x00,0x00,0x00,0x00] 62666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovw 0, %ax // CHECK: movw 0, %ax # encoding: [0x66,0x8b,0x04,0x25,0x00,0x00,0x00,0x00] 62766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovl 0, %eax // CHECK: movl 0, %eax # encoding: [0x8b,0x04,0x25,0x00,0x00,0x00,0x00] 62866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 62966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: pushfq # encoding: [0x9c] 63066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman pushf 63166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: pushfq # encoding: [0x9c] 63266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman pushfq 63366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: popfq # encoding: [0x9d] 63466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman popf 63566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: popfq # encoding: [0x9d] 63666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman popfq 63766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 63866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movabsq $-281474976710654, %rax 63966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x48,0xb8,0x02,0x00,0x00,0x00,0x00,0x00,0xff,0xff] 64066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman movabsq $0xFFFF000000000002, %rax 64166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 64266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movabsq $-281474976710654, %rax 64366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x48,0xb8,0x02,0x00,0x00,0x00,0x00,0x00,0xff,0xff] 64466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman movq $0xFFFF000000000002, %rax 64566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 64666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movq $-65536, %rax 64766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x48,0xc7,0xc0,0x00,0x00,0xff,0xff] 64866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman movq $0xFFFFFFFFFFFF0000, %rax 64966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 65066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movq $-256, %rax 65166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x48,0xc7,0xc0,0x00,0xff,0xff,0xff] 65266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman movq $0xFFFFFFFFFFFFFF00, %rax 65366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 65466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movq $10, %rax 65566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x48,0xc7,0xc0,0x0a,0x00,0x00,0x00] 65666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman movq $10, %rax 65766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 65866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8014869 65966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// 66066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: ret 66166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0xc3] 66266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman retq 66366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 66466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: sete %al 66566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x0f,0x94,0xc0] 66666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman setz %al 66766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 66866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: setne %al 66966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x0f,0x95,0xc0] 67066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman setnz %al 67166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 67266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: je 0 67366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x74,A] 67466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman jz 0 67566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 67666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: jne 67766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x75,A] 67866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman jnz 0 67966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 68066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// PR9264 68166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanbtl $1, 0 // CHECK: btl $1, 0 # encoding: [0x0f,0xba,0x24,0x25,0x00,0x00,0x00,0x00,0x01] 68266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanbt $1, 0 // CHECK: btl $1, 0 # encoding: [0x0f,0xba,0x24,0x25,0x00,0x00,0x00,0x00,0x01] 68366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 68466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8017515 68566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanbtq $0x01,%rdx 68666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: btq $1, %rdx 68766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x48,0x0f,0xba,0xe2,0x01] 68866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 68966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman//rdar://8017633 69066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movzbl %al, %esi 69166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x0f,0xb6,0xf0] 69266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman movzx %al, %esi 69366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 69466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movzbq %al, %rsi 69566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x48,0x0f,0xb6,0xf0] 69666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman movzx %al, %rsi 69766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 69866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movsbw %al, %ax 69966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x66,0x0f,0xbe,0xc0] 70066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovsx %al, %ax 70166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 70266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movsbl %al, %eax 70366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x0f,0xbe,0xc0] 70466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovsx %al, %eax 70566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 70666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movswl %ax, %eax 70766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x0f,0xbf,0xc0] 70866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovsx %ax, %eax 70966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 71066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movsbq %bl, %rax 71166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x48,0x0f,0xbe,0xc3] 71266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovsx %bl, %rax 71366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 71466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movswq %cx, %rax 71566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x48,0x0f,0xbf,0xc1] 71666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovsx %cx, %rax 71766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 71866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movslq %edi, %rax 71966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x48,0x63,0xc7] 72066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovsx %edi, %rax 72166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 72266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movzbw %al, %ax 72366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x66,0x0f,0xb6,0xc0] 72466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovzx %al, %ax 72566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 72666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movzbl %al, %eax 72766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x0f,0xb6,0xc0] 72866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovzx %al, %eax 72966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 73066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movzwl %ax, %eax 73166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x0f,0xb7,0xc0] 73266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovzx %ax, %eax 73366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 73466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movzbq %bl, %rax 73566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x48,0x0f,0xb6,0xc3] 73666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovzx %bl, %rax 73766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 73866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movzwq %cx, %rax 73966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x48,0x0f,0xb7,0xc1] 74066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovzx %cx, %rax 74166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 74266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movsbw (%rax), %ax 74366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x66,0x0f,0xbe,0x00] 74466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovsx (%rax), %ax 74566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 74666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movzbw (%rax), %ax 74766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x66,0x0f,0xb6,0x00] 74866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovzx (%rax), %ax 74966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 75066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 75166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://7873482 75266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: [0x65,0x8b,0x04,0x25,0x7c,0x00,0x00,0x00] 75366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman movl %gs:124, %eax 75466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 75566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: jmpq *8(%rax) 75666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0xff,0x60,0x08] 75766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman jmp *8(%rax) 75866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 75966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: btq $61, -216(%rbp) 76066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x48,0x0f,0xba,0xa5,0x28,0xff,0xff,0xff,0x3d] 76166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman btq $61, -216(%rbp) 76266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 76366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 76466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8061602 76566b8ab22586debccb1f787d4d52b7f042d4ddeb8John BaumanL1: 76666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman jecxz L1 76766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: jecxz L1 76866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x67,0xe3,A] 76966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman jrcxz L1 77066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: jrcxz L1 77166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0xe3,A] 77266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 77366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// PR8061 77466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanxchgl 368(%rax),%ecx 77566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: xchgl %ecx, 368(%rax) 77666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanxchgl %ecx, 368(%rax) 77766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: xchgl %ecx, 368(%rax) 77866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 77966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8407548 78066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanxchg 0xdeadbeef(%rbx,%rcx,8),%bl 78166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: xchgb %bl, 3735928559(%rbx,%rcx,8) 78266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 78366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 78466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 78566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// PR7254 78666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanlock incl 1(%rsp) 78766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: lock 78866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: incl 1(%rsp) 78966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 79066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8741045 79166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanlock/incl 1(%rsp) 79266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: lock 79366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: incl 1(%rsp) 79466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 79566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8033482 79666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanrep movsl 79766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: rep 79866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0xf3] 79966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movsd 80066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0xa5] 80166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 80266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 80366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8403974 80466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumaniret 80566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: iretl 80666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0xcf] 80766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumaniretw 80866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: iretw 80966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x66,0xcf] 81066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumaniretl 81166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: iretl 81266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0xcf] 81366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumaniretq 81466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: iretq 81566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x48,0xcf] 81666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 81766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8416805 81866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: retw $31438 81966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x66,0xc2,0xce,0x7a] 82066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman retw $0x7ace 82166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 82266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: lretw $31438 82366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x66,0xca,0xce,0x7a] 82466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman lretw $0x7ace 82566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 82666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// PR8592 82766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanlretq // CHECK: lretq # encoding: [0x48,0xcb] 82866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanlretl // CHECK: lretl # encoding: [0xcb] 82966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanlret // CHECK: lretl # encoding: [0xcb] 83066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 83166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8403907 83266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumansysret 83366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: sysretl 83466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x0f,0x07] 83566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumansysretl 83666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: sysretl 83766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x0f,0x07] 83866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumansysretq 83966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: sysretq 84066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x48,0x0f,0x07] 84166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 84266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8407242 84366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanpush %fs 84466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: pushq %fs 84566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x0f,0xa0] 84666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanpush %gs 84766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: pushq %gs 84866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x0f,0xa8] 84966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 85066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanpushw %fs 85166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: pushw %fs 85266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x66,0x0f,0xa0] 85366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanpushw %gs 85466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: pushw %gs 85566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x66,0x0f,0xa8] 85666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 85766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 85866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanpop %fs 85966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: popq %fs 86066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x0f,0xa1] 86166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanpop %gs 86266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: popq %gs 86366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x0f,0xa9] 86466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 86566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanpopw %fs 86666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: popw %fs 86766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x66,0x0f,0xa1] 86866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanpopw %gs 86966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: popw %gs 87066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x66,0x0f,0xa9] 87166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 87266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8438816 87366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfildq -8(%rsp) 87466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanfildll -8(%rsp) 87566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fildll -8(%rsp) 87666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0xdf,0x6c,0x24,0xf8] 87766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: fildll -8(%rsp) 87866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0xdf,0x6c,0x24,0xf8] 87966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 88066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: callq a 88166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman callq a 88266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 88366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: leaq -40(%rbp), %r15 88466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman leaq -40(%rbp), %r15 88566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 88666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 88766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 88866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8013734 - Alias dr6=db6 88966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmov %dr6, %rax 89066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmov %db6, %rax 89166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movq %dr6, %rax 89266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movq %dr6, %rax 89366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 89466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 89566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// INC/DEC encodings. 89666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanincb %al // CHECK: incb %al # encoding: [0xfe,0xc0] 89766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanincw %ax // CHECK: incw %ax # encoding: [0x66,0xff,0xc0] 89866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanincl %eax // CHECK: incl %eax # encoding: [0xff,0xc0] 89966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumandecb %al // CHECK: decb %al # encoding: [0xfe,0xc8] 90066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumandecw %ax // CHECK: decw %ax # encoding: [0x66,0xff,0xc8] 90166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumandecl %eax // CHECK: decl %eax # encoding: [0xff,0xc8] 90266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 90366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8416805 90466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: lgdt 4(%rax) 90566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x0f,0x01,0x50,0x04] 90666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman lgdt 4(%rax) 90766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 90866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: lgdt 4(%rax) 90966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x0f,0x01,0x50,0x04] 91066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman lgdtq 4(%rax) 91166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 91266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: lidt 4(%rax) 91366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x0f,0x01,0x58,0x04] 91466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman lidt 4(%rax) 91566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 91666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: lidt 4(%rax) 91766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x0f,0x01,0x58,0x04] 91866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman lidtq 4(%rax) 91966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 92066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: sgdt 4(%rax) 92166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x0f,0x01,0x40,0x04] 92266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman sgdt 4(%rax) 92366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 92466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: sgdt 4(%rax) 92566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x0f,0x01,0x40,0x04] 92666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman sgdtq 4(%rax) 92766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 92866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: sidt 4(%rax) 92966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x0f,0x01,0x48,0x04] 93066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman sidt 4(%rax) 93166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 93266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: sidt 4(%rax) 93366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x0f,0x01,0x48,0x04] 93466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman sidtq 4(%rax) 93566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 93666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 93766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8208615 93866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmov (%rsi), %gs // CHECK: movl (%rsi), %gs # encoding: [0x8e,0x2e] 93966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmov %gs, (%rsi) // CHECK: movl %gs, (%rsi) # encoding: [0x8c,0x2e] 94066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 94166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 94266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// rdar://8431864 94366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman div %bl,%al 94466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman div %bx,%ax 94566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman div %ecx,%eax 94666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman div 0xdeadbeef(%ebx,%ecx,8),%eax 94766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman div 0x45,%eax 94866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman div 0x7eed,%eax 94966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman div 0xbabecafe,%eax 95066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman div 0x12345678,%eax 95166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman idiv %bl,%al 95266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman idiv %bx,%ax 95366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman idiv %ecx,%eax 95466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman idiv 0xdeadbeef(%ebx,%ecx,8),%eax 95566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman idiv 0x45,%eax 95666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman idiv 0x7eed,%eax 95766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman idiv 0xbabecafe,%eax 95866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman idiv 0x12345678,%eax 95966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 96066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// PR8524 96166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovd %rax, %mm5 // CHECK: movd %rax, %mm5 # encoding: [0x48,0x0f,0x6e,0xe8] 96266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovd %mm5, %rbx // CHECK: movd %mm5, %rbx # encoding: [0x48,0x0f,0x7e,0xeb] 96366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovq %rax, %mm5 // CHECK: movd %rax, %mm5 # encoding: [0x48,0x0f,0x6e,0xe8] 96466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovq %mm5, %rbx // CHECK: movd %mm5, %rbx # encoding: [0x48,0x0f,0x7e,0xeb] 96566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 96666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanrex64 // CHECK: rex64 # encoding: [0x48] 96766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumandata16 // CHECK: data16 # encoding: [0x66] 96866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 96966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// PR8855 97066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovq 18446744073709551615,%rbx // CHECK: movq -1, %rbx 97166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 97266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// PR8946 97366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovdqu %xmm0, %xmm1 // CHECK: movdqu %xmm0, %xmm1 # encoding: [0xf3,0x0f,0x6f,0xc8] 97466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 97566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// PR8935 97666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanxgetbv // CHECK: xgetbv # encoding: [0x0f,0x01,0xd0] 97766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanxsetbv // CHECK: xsetbv # encoding: [0x0f,0x01,0xd1] 97866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 97966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: loope 0 98066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0xe1,A] 98166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman loopz 0 98266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 98366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: loopne 0 98466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0xe0,A] 98566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman loopnz 0 98666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 98766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: outsb # encoding: [0x6e] 98866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: outsb 98966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: outsb 99066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman outsb 99166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman outsb %ds:(%rsi), %dx 99266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman outsb (%rsi), %dx 99366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 99466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: outsw # encoding: [0x66,0x6f] 99566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: outsw 99666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: outsw 99766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman outsw 99866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman outsw %ds:(%rsi), %dx 99966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman outsw (%rsi), %dx 100066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 100166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: outsl # encoding: [0x6f] 100266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: outsl 100366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman outsl 100466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman outsl %ds:(%rsi), %dx 100566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman outsl (%rsi), %dx 100666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 100766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: insb # encoding: [0x6c] 100866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: insb 100966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman insb 101066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman insb %dx, %es:(%rdi) 101166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 101266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: insw # encoding: [0x66,0x6d] 101366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: insw 101466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman insw 101566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman insw %dx, %es:(%rdi) 101666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 101766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: insl # encoding: [0x6d] 101866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: insl 101966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman insl 102066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman insl %dx, %es:(%rdi) 102166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 102266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movsb # encoding: [0xa4] 102366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movsb 102466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movsb 102566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman movsb 102666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman movsb %ds:(%rsi), %es:(%rdi) 102766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman movsb (%rsi), %es:(%rdi) 102866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 102966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movsw # encoding: [0x66,0xa5] 103066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movsw 103166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movsw 103266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman movsw 103366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman movsw %ds:(%rsi), %es:(%rdi) 103466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman movsw (%rsi), %es:(%rdi) 103566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 103666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movsd # encoding: [0xa5] 103766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movsd 103866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movsd 103966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman movsl 104066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman movsl %ds:(%rsi), %es:(%rdi) 104166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman movsl (%rsi), %es:(%rdi) 104266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 104366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movsq # encoding: [0x48,0xa5] 104466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movsq 104566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movsq 104666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman movsq 104766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman movsq %ds:(%rsi), %es:(%rdi) 104866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman movsq (%rsi), %es:(%rdi) 104966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 105066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: lodsb # encoding: [0xac] 105166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: lodsb 105266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: lodsb 105366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: lodsb 105466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: lodsb 105566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman lodsb 105666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman lodsb %ds:(%rsi), %al 105766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman lodsb (%rsi), %al 105866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman lods %ds:(%rsi), %al 105966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman lods (%rsi), %al 106066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 106166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: lodsw # encoding: [0x66,0xad] 106266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: lodsw 106366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: lodsw 106466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: lodsw 106566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: lodsw 106666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman lodsw 106766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman lodsw %ds:(%rsi), %ax 106866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman lodsw (%rsi), %ax 106966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman lods %ds:(%rsi), %ax 107066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman lods (%rsi), %ax 107166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 107266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: lodsl # encoding: [0xad] 107366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: lodsl 107466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: lodsl 107566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: lodsl 107666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: lodsl 107766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman lodsl 107866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman lodsl %ds:(%rsi), %eax 107966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman lodsl (%rsi), %eax 108066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman lods %ds:(%rsi), %eax 108166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman lods (%rsi), %eax 108266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 108366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: lodsq # encoding: [0x48,0xad] 108466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: lodsq 108566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: lodsq 108666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: lodsq 108766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: lodsq 108866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman lodsq 108966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman lodsq %ds:(%rsi), %rax 109066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman lodsq (%rsi), %rax 109166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman lods %ds:(%rsi), %rax 109266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman lods (%rsi), %rax 109366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 109466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: stosb # encoding: [0xaa] 109566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: stosb 109666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: stosb 109766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman stosb 109866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman stosb %al, %es:(%rdi) 109966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman stos %al, %es:(%rdi) 110066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 110166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: stosw # encoding: [0x66,0xab] 110266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: stosw 110366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: stosw 110466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman stosw 110566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman stosw %ax, %es:(%rdi) 110666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman stos %ax, %es:(%rdi) 110766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 110866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: stosl # encoding: [0xab] 110966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: stosl 111066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: stosl 111166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman stosl 111266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman stosl %eax, %es:(%rdi) 111366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman stos %eax, %es:(%rdi) 111466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 111566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: stosq # encoding: [0x48,0xab] 111666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: stosq 111766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: stosq 111866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman stosq 111966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman stosq %rax, %es:(%rdi) 112066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman stos %rax, %es:(%rdi) 112166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 112266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: strw 112366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x66,0x0f,0x00,0xc8] 112466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman str %ax 112566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 112666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: strl 112766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x0f,0x00,0xc8] 112866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman str %eax 112966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 113066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: strw 113166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x66,0x0f,0x00,0xc8] 113266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman str %ax 113366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 113466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: strq 113566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x48,0x0f,0x00,0xc8] 113666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman str %rax 113766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 113866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movd %rdi, %xmm0 113966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x66,0x48,0x0f,0x6e,0xc7] 114066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman movq %rdi,%xmm0 114166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 114266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movd %rdi, %xmm0 114366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x66,0x48,0x0f,0x6e,0xc7] 114466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman movd %rdi,%xmm0 114566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 114666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movntil %eax, (%rdi) 114766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x0f,0xc3,0x07] 114866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movntil 114966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovntil %eax, (%rdi) 115066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovnti %eax, (%rdi) 115166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 115266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movntiq %rax, (%rdi) 115366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x48,0x0f,0xc3,0x07] 115466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: movntiq 115566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovntiq %rax, (%rdi) 115666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanmovnti %rax, (%rdi) 115766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 115866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: pclmulqdq $17, %xmm0, %xmm1 115966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x66,0x0f,0x3a,0x44,0xc8,0x11] 116066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanpclmulhqhqdq %xmm0, %xmm1 116166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 116266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: pclmulqdq $1, %xmm0, %xmm1 116366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x66,0x0f,0x3a,0x44,0xc8,0x01] 116466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanpclmulqdq $1, %xmm0, %xmm1 116566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 116666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: pclmulqdq $16, (%rdi), %xmm1 116766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x66,0x0f,0x3a,0x44,0x0f,0x10] 116866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanpclmullqhqdq (%rdi), %xmm1 116966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 117066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: pclmulqdq $0, (%rdi), %xmm1 117166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x66,0x0f,0x3a,0x44,0x0f,0x00] 117266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanpclmulqdq $0, (%rdi), %xmm1 117366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 117466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// PR10345 117566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: xchgq %rax, %rax 117666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x48,0x90] 117766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanxchgq %rax, %rax 117866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 117966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: xchgl %eax, %eax 118066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x87,0xc0] 118166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanxchgl %eax, %eax 118266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 118366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: xchgw %ax, %ax 118466b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x66,0x90] 118566b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanxchgw %ax, %ax 118666b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 118766b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: xchgl %ecx, %eax 118866b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x91] 118966b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanxchgl %ecx, %eax 119066b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman 119166b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: xchgl %ecx, %eax 119266b8ab22586debccb1f787d4d52b7f042d4ddeb8John Bauman// CHECK: encoding: [0x91] 119366b8ab22586debccb1f787d4d52b7f042d4ddeb8John Baumanxchgl %eax, %ecx 1194