|  | // RUN: llvm-mc -triple i386-unknown-unknown --show-encoding %s | FileCheck %s | 
|  |  | 
|  | pause | 
|  | // CHECK: pause | 
|  | // CHECK: encoding: [0xf3,0x90] | 
|  | sfence | 
|  | // CHECK: sfence | 
|  | // CHECK: encoding: [0x0f,0xae,0xf8] | 
|  | lfence | 
|  | // CHECK: lfence | 
|  | // CHECK: encoding: [0x0f,0xae,0xe8] | 
|  | mfence | 
|  | // CHECK: mfence | 
|  | // CHECK: encoding: [0x0f,0xae,0xf0] | 
|  | monitor | 
|  | // CHECK: monitor | 
|  | // CHECK: encoding: [0x0f,0x01,0xc8] | 
|  | monitor %eax, %ecx, %edx | 
|  | // CHECK: monitor | 
|  | // CHECK: encoding: [0x0f,0x01,0xc8] | 
|  | mwait | 
|  | // CHECK: mwait | 
|  | // CHECK: encoding: [0x0f,0x01,0xc9] | 
|  | mwait %eax, %ecx | 
|  | // CHECK: mwait | 
|  | // CHECK: encoding: [0x0f,0x01,0xc9] | 
|  |  | 
|  | vmcall | 
|  | // CHECK: vmcall | 
|  | // CHECK: encoding: [0x0f,0x01,0xc1] | 
|  | vmlaunch | 
|  | // CHECK: vmlaunch | 
|  | // CHECK: encoding: [0x0f,0x01,0xc2] | 
|  | vmresume | 
|  | // CHECK: vmresume | 
|  | // CHECK: encoding: [0x0f,0x01,0xc3] | 
|  | vmxoff | 
|  | // CHECK: vmxoff | 
|  | // CHECK: encoding: [0x0f,0x01,0xc4] | 
|  | swapgs | 
|  | // CHECK: swapgs | 
|  | // CHECK: encoding: [0x0f,0x01,0xf8] | 
|  |  | 
|  | rdtscp | 
|  | // CHECK: rdtscp | 
|  | // CHECK:  encoding: [0x0f,0x01,0xf9] | 
|  |  | 
|  |  | 
|  | // CHECK: movl	%eax, 16(%ebp)          # encoding: [0x89,0x45,0x10] | 
|  | movl	%eax, 16(%ebp) | 
|  | // CHECK: movl	%eax, -16(%ebp)          # encoding: [0x89,0x45,0xf0] | 
|  | movl	%eax, -16(%ebp) | 
|  |  | 
|  | // CHECK: testb	%bl, %cl                # encoding: [0x84,0xcb] | 
|  | testb %bl, %cl | 
|  |  | 
|  | // CHECK: cmpl	%eax, %ebx              # encoding: [0x39,0xc3] | 
|  | cmpl %eax, %ebx | 
|  |  | 
|  | // CHECK: addw	%ax, %ax                # encoding: [0x66,0x01,0xc0] | 
|  | addw %ax, %ax | 
|  |  | 
|  | // CHECK: shrl	%eax                    # encoding: [0xd1,0xe8] | 
|  | shrl $1, %eax | 
|  |  | 
|  | // CHECK: shll	%eax                    # encoding: [0xd1,0xe0] | 
|  | sall $1, %eax | 
|  | // CHECK: shll	%eax                    # encoding: [0xd1,0xe0] | 
|  | sal $1, %eax | 
|  |  | 
|  | // moffset forms of moves, rdar://7947184 | 
|  | movb	0, %al    // CHECK: movb 0, %al  # encoding: [0xa0,A,A,A,A] | 
|  | movw	0, %ax    // CHECK: movw 0, %ax  # encoding: [0x66,0xa1,A,A,A,A] | 
|  | movl	0, %eax   // CHECK: movl 0, %eax  # encoding: [0xa1,A,A,A,A] | 
|  |  | 
|  | // rdar://7973775 | 
|  | into | 
|  | // CHECK: into | 
|  | // CHECK:  encoding: [0xce] | 
|  | int3 | 
|  | // CHECK: int3 | 
|  | // CHECK:  encoding: [0xcc] | 
|  | int $4 | 
|  | // CHECK: int $4 | 
|  | // CHECK:  encoding: [0xcd,0x04] | 
|  | int $255 | 
|  | // CHECK: int $255 | 
|  | // CHECK:  encoding: [0xcd,0xff] | 
|  |  | 
|  | // CHECK: pushfl	# encoding: [0x9c] | 
|  | pushf | 
|  | // CHECK: pushfl	# encoding: [0x9c] | 
|  | pushfl | 
|  | // CHECK: popfl	        # encoding: [0x9d] | 
|  | popf | 
|  | // CHECK: popfl	        # encoding: [0x9d] | 
|  | popfl | 
|  |  | 
|  | // rdar://8014869 | 
|  | retl | 
|  | // CHECK: ret | 
|  | // CHECK:  encoding: [0xc3] | 
|  |  | 
|  | // rdar://7973854 | 
|  | // CHECK: cmoval	%eax, %edx | 
|  | // CHECK:  encoding: [0x0f,0x47,0xd0] | 
|  | cmoval	%eax,%edx | 
|  |  | 
|  | // CHECK: cmovael	%eax, %edx | 
|  | // CHECK:  encoding: [0x0f,0x43,0xd0] | 
|  | cmovael	%eax,%edx | 
|  |  | 
|  | // CHECK: cmovbel	%eax, %edx | 
|  | // CHECK:  encoding: [0x0f,0x46,0xd0] | 
|  | cmovbel	%eax,%edx | 
|  |  | 
|  | // CHECK: cmovbl	%eax, %edx | 
|  | // CHECK:  encoding: [0x0f,0x42,0xd0] | 
|  | cmovbl	%eax,%edx | 
|  |  | 
|  | // CHECK: cmovbw %bx, %bx | 
|  | cmovnae	%bx,%bx | 
|  |  | 
|  |  | 
|  | // CHECK: cmovbel	%eax, %edx | 
|  | // CHECK:  encoding: [0x0f,0x46,0xd0] | 
|  | cmovbel	%eax,%edx | 
|  |  | 
|  | // CHECK: cmovbl	%eax, %edx | 
|  | // CHECK:  encoding: [0x0f,0x42,0xd0] | 
|  | cmovcl	%eax,%edx | 
|  |  | 
|  | // CHECK: cmovel	%eax, %edx | 
|  | // CHECK:  encoding: [0x0f,0x44,0xd0] | 
|  | cmovel	%eax,%edx | 
|  |  | 
|  | // CHECK: cmovgl	%eax, %edx | 
|  | // CHECK:  encoding: [0x0f,0x4f,0xd0] | 
|  | cmovgl	%eax,%edx | 
|  |  | 
|  | // CHECK: cmovgel	%eax, %edx | 
|  | // CHECK:  encoding: [0x0f,0x4d,0xd0] | 
|  | cmovgel	%eax,%edx | 
|  |  | 
|  | // CHECK: cmovll	%eax, %edx | 
|  | // CHECK:  encoding: [0x0f,0x4c,0xd0] | 
|  | cmovll	%eax,%edx | 
|  |  | 
|  | // CHECK: cmovlel	%eax, %edx | 
|  | // CHECK:  encoding: [0x0f,0x4e,0xd0] | 
|  | cmovlel	%eax,%edx | 
|  |  | 
|  | // CHECK: cmovbel	%eax, %edx | 
|  | // CHECK:  encoding: [0x0f,0x46,0xd0] | 
|  | cmovnal	%eax,%edx | 
|  |  | 
|  | // CHECK: cmovnel	%eax, %edx | 
|  | // CHECK:  encoding: [0x0f,0x45,0xd0] | 
|  | cmovnel	%eax,%edx | 
|  |  | 
|  | // CHECK: cmovael	%eax, %edx | 
|  | // CHECK:  encoding: [0x0f,0x43,0xd0] | 
|  | cmovnbl	%eax,%edx | 
|  |  | 
|  | // CHECK: cmoval	%eax, %edx | 
|  | // CHECK:  encoding: [0x0f,0x47,0xd0] | 
|  | cmovnbel	%eax,%edx | 
|  |  | 
|  | // CHECK: cmovael	%eax, %edx | 
|  | // CHECK:  encoding: [0x0f,0x43,0xd0] | 
|  | cmovncl	%eax,%edx | 
|  |  | 
|  | // CHECK: cmovnel	%eax, %edx | 
|  | // CHECK:  encoding: [0x0f,0x45,0xd0] | 
|  | cmovnel	%eax,%edx | 
|  |  | 
|  | // CHECK: cmovlel	%eax, %edx | 
|  | // CHECK:  encoding: [0x0f,0x4e,0xd0] | 
|  | cmovngl	%eax,%edx | 
|  |  | 
|  | // CHECK: cmovgel	%eax, %edx | 
|  | // CHECK:  encoding: [0x0f,0x4d,0xd0] | 
|  | cmovnl	%eax,%edx | 
|  |  | 
|  | // CHECK: cmovnel	%eax, %edx | 
|  | // CHECK:  encoding: [0x0f,0x45,0xd0] | 
|  | cmovnel	%eax,%edx | 
|  |  | 
|  | // CHECK: cmovlel	%eax, %edx | 
|  | // CHECK:  encoding: [0x0f,0x4e,0xd0] | 
|  | cmovngl	%eax,%edx | 
|  |  | 
|  | // CHECK: cmovll	%eax, %edx | 
|  | // CHECK:  encoding: [0x0f,0x4c,0xd0] | 
|  | cmovngel	%eax,%edx | 
|  |  | 
|  | // CHECK: cmovgel	%eax, %edx | 
|  | // CHECK:  encoding: [0x0f,0x4d,0xd0] | 
|  | cmovnll	%eax,%edx | 
|  |  | 
|  | // CHECK: cmovgl	%eax, %edx | 
|  | // CHECK:  encoding: [0x0f,0x4f,0xd0] | 
|  | cmovnlel	%eax,%edx | 
|  |  | 
|  | // CHECK: cmovnol	%eax, %edx | 
|  | // CHECK:  encoding: [0x0f,0x41,0xd0] | 
|  | cmovnol	%eax,%edx | 
|  |  | 
|  | // CHECK: cmovnpl	%eax, %edx | 
|  | // CHECK:  encoding: [0x0f,0x4b,0xd0] | 
|  | cmovnpl	%eax,%edx | 
|  |  | 
|  | // CHECK: cmovnsl	%eax, %edx | 
|  | // CHECK:  encoding: [0x0f,0x49,0xd0] | 
|  | cmovnsl	%eax,%edx | 
|  |  | 
|  | // CHECK: cmovnel	%eax, %edx | 
|  | // CHECK:  encoding: [0x0f,0x45,0xd0] | 
|  | cmovnzl	%eax,%edx | 
|  |  | 
|  | // CHECK: cmovol	%eax, %edx | 
|  | // CHECK:  encoding: [0x0f,0x40,0xd0] | 
|  | cmovol	%eax,%edx | 
|  |  | 
|  | // CHECK: cmovpl	%eax, %edx | 
|  | // CHECK:  encoding: [0x0f,0x4a,0xd0] | 
|  | cmovpl	%eax,%edx | 
|  |  | 
|  | // CHECK: cmovsl	%eax, %edx | 
|  | // CHECK:  encoding: [0x0f,0x48,0xd0] | 
|  | cmovsl	%eax,%edx | 
|  |  | 
|  | // CHECK: cmovel	%eax, %edx | 
|  | // CHECK:  encoding: [0x0f,0x44,0xd0] | 
|  | cmovzl	%eax,%edx | 
|  |  | 
|  | // CHECK: cmpps	$0, %xmm0, %xmm1 | 
|  | // CHECK: encoding: [0x0f,0xc2,0xc8,0x00] | 
|  | cmpps $0, %xmm0, %xmm1 | 
|  | // CHECK:	cmpps	$0, (%eax), %xmm1 | 
|  | // CHECK: encoding: [0x0f,0xc2,0x08,0x00] | 
|  | cmpps $0, 0(%eax), %xmm1 | 
|  | // CHECK:	cmppd	$0, %xmm0, %xmm1 | 
|  | // CHECK: encoding: [0x66,0x0f,0xc2,0xc8,0x00] | 
|  | cmppd $0, %xmm0, %xmm1 | 
|  | // CHECK:	cmppd	$0, (%eax), %xmm1 | 
|  | // CHECK: encoding: [0x66,0x0f,0xc2,0x08,0x00] | 
|  | cmppd $0, 0(%eax), %xmm1 | 
|  | // CHECK:	cmpss	$0, %xmm0, %xmm1 | 
|  | // CHECK: encoding: [0xf3,0x0f,0xc2,0xc8,0x00] | 
|  | cmpss $0, %xmm0, %xmm1 | 
|  | // CHECK:	cmpss	$0, (%eax), %xmm1 | 
|  | // CHECK: encoding: [0xf3,0x0f,0xc2,0x08,0x00] | 
|  | cmpss $0, 0(%eax), %xmm1 | 
|  | // CHECK:	cmpsd	$0, %xmm0, %xmm1 | 
|  | // CHECK: encoding: [0xf2,0x0f,0xc2,0xc8,0x00] | 
|  | cmpsd $0, %xmm0, %xmm1 | 
|  | // CHECK:	cmpsd	$0, (%eax), %xmm1 | 
|  | // CHECK: encoding: [0xf2,0x0f,0xc2,0x08,0x00] | 
|  | cmpsd $0, 0(%eax), %xmm1 | 
|  |  | 
|  | // Check matching of instructions which embed the SSE comparison code. | 
|  |  | 
|  | // CHECK: cmpps $0, %xmm0, %xmm1 | 
|  | // CHECK: encoding: [0x0f,0xc2,0xc8,0x00] | 
|  | cmpeqps %xmm0, %xmm1 | 
|  |  | 
|  | // CHECK: cmppd $1, %xmm0, %xmm1 | 
|  | // CHECK: encoding: [0x66,0x0f,0xc2,0xc8,0x01] | 
|  | cmpltpd %xmm0, %xmm1 | 
|  |  | 
|  | // CHECK: cmpss $2, %xmm0, %xmm1 | 
|  | // CHECK: encoding: [0xf3,0x0f,0xc2,0xc8,0x02] | 
|  | cmpless %xmm0, %xmm1 | 
|  |  | 
|  | // CHECK: cmppd $3, %xmm0, %xmm1 | 
|  | // CHECK: encoding: [0x66,0x0f,0xc2,0xc8,0x03] | 
|  | cmpunordpd %xmm0, %xmm1 | 
|  |  | 
|  | // CHECK: cmpps $4, %xmm0, %xmm1 | 
|  | // CHECK: encoding: [0x0f,0xc2,0xc8,0x04] | 
|  | cmpneqps %xmm0, %xmm1 | 
|  |  | 
|  | // CHECK: cmppd $5, %xmm0, %xmm1 | 
|  | // CHECK: encoding: [0x66,0x0f,0xc2,0xc8,0x05] | 
|  | cmpnltpd %xmm0, %xmm1 | 
|  |  | 
|  | // CHECK: cmpss $6, %xmm0, %xmm1 | 
|  | // CHECK: encoding: [0xf3,0x0f,0xc2,0xc8,0x06] | 
|  | cmpnless %xmm0, %xmm1 | 
|  |  | 
|  | // CHECK: cmpsd $7, %xmm0, %xmm1 | 
|  | // CHECK: encoding: [0xf2,0x0f,0xc2,0xc8,0x07] | 
|  | cmpordsd %xmm0, %xmm1 | 
|  |  | 
|  | // rdar://7995856 | 
|  | // CHECK: fmul	%st(0) | 
|  | // CHECK:  encoding: [0xd8,0xc8] | 
|  | fmul %st(0), %st | 
|  |  | 
|  | // CHECK: fadd	%st(0) | 
|  | // CHECK:  encoding: [0xd8,0xc0] | 
|  | fadd %st(0), %st | 
|  |  | 
|  | // CHECK: fsub	%st(0) | 
|  | // CHECK:  encoding: [0xd8,0xe0] | 
|  | fsub %st(0), %st | 
|  |  | 
|  | // CHECK: fsubr	%st(0) | 
|  | // CHECK:  encoding: [0xd8,0xe8] | 
|  | fsubr %st(0), %st | 
|  |  | 
|  | // CHECK: fdivr	%st(0) | 
|  | // CHECK:  encoding: [0xd8,0xf8] | 
|  | fdivr %st(0), %st | 
|  |  | 
|  | // CHECK: fdiv	%st(0) | 
|  | // CHECK:  encoding: [0xd8,0xf0] | 
|  | fdiv %st(0), %st | 
|  |  | 
|  | // radr://8017519 | 
|  | // CHECK: movl	%cs, %eax | 
|  | // CHECK:  encoding: [0x8c,0xc8] | 
|  | movl %cs, %eax | 
|  |  | 
|  | // CHECK: movw	%cs, %ax | 
|  | // CHECK:  encoding: [0x66,0x8c,0xc8] | 
|  | movw %cs, %ax | 
|  |  | 
|  | // CHECK: movl	%cs, (%eax) | 
|  | // CHECK:  encoding: [0x8c,0x08] | 
|  | movl %cs, (%eax) | 
|  |  | 
|  | // CHECK: movw	%cs, (%eax) | 
|  | // CHECK:  encoding: [0x66,0x8c,0x08] | 
|  | movw %cs, (%eax) | 
|  |  | 
|  | // CHECK: movl	%eax, %cs | 
|  | // CHECK:  encoding: [0x8e,0xc8] | 
|  | movl %eax, %cs | 
|  |  | 
|  | // CHECK: movl	(%eax), %cs | 
|  | // CHECK:  encoding: [0x8e,0x08] | 
|  | movl (%eax), %cs | 
|  |  | 
|  | // CHECK: movw	(%eax), %cs | 
|  | // CHECK:  encoding: [0x66,0x8e,0x08] | 
|  | movw (%eax), %cs | 
|  |  | 
|  | // radr://8033374 | 
|  | // CHECK: movl	%cr0, %eax | 
|  | // CHECK:  encoding: [0x0f,0x20,0xc0] | 
|  | movl %cr0,%eax | 
|  |  | 
|  | // CHECK: movl	%cr1, %eax | 
|  | // CHECK:  encoding: [0x0f,0x20,0xc8] | 
|  | movl %cr1,%eax | 
|  |  | 
|  | // CHECK: movl	%cr2, %eax | 
|  | // CHECK:  encoding: [0x0f,0x20,0xd0] | 
|  | movl %cr2,%eax | 
|  |  | 
|  | // CHECK: movl	%cr3, %eax | 
|  | // CHECK:  encoding: [0x0f,0x20,0xd8] | 
|  | movl %cr3,%eax | 
|  |  | 
|  | // CHECK: movl	%cr4, %eax | 
|  | // CHECK:  encoding: [0x0f,0x20,0xe0] | 
|  | movl %cr4,%eax | 
|  |  | 
|  | // CHECK: movl	%dr0, %eax | 
|  | // CHECK:  encoding: [0x0f,0x21,0xc0] | 
|  | movl %dr0,%eax | 
|  |  | 
|  | // CHECK: movl	%dr1, %eax | 
|  | // CHECK:  encoding: [0x0f,0x21,0xc8] | 
|  | movl %dr1,%eax | 
|  |  | 
|  | // CHECK: movl	%dr1, %eax | 
|  | // CHECK:  encoding: [0x0f,0x21,0xc8] | 
|  | movl %dr1,%eax | 
|  |  | 
|  | // CHECK: movl	%dr2, %eax | 
|  | // CHECK:  encoding: [0x0f,0x21,0xd0] | 
|  | movl %dr2,%eax | 
|  |  | 
|  | // CHECK: movl	%dr3, %eax | 
|  | // CHECK:  encoding: [0x0f,0x21,0xd8] | 
|  | movl %dr3,%eax | 
|  |  | 
|  | // CHECK: movl	%dr4, %eax | 
|  | // CHECK:  encoding: [0x0f,0x21,0xe0] | 
|  | movl %dr4,%eax | 
|  |  | 
|  | // CHECK: movl	%dr5, %eax | 
|  | // CHECK:  encoding: [0x0f,0x21,0xe8] | 
|  | movl %dr5,%eax | 
|  |  | 
|  | // CHECK: movl	%dr6, %eax | 
|  | // CHECK:  encoding: [0x0f,0x21,0xf0] | 
|  | movl %dr6,%eax | 
|  |  | 
|  | // CHECK: movl	%dr7, %eax | 
|  | // CHECK:  encoding: [0x0f,0x21,0xf8] | 
|  | movl %dr7,%eax | 
|  |  | 
|  | // radr://8017522 | 
|  | // CHECK: wait | 
|  | // CHECK:  encoding: [0x9b] | 
|  | fwait | 
|  |  | 
|  | // rdar://7873482 | 
|  | // CHECK: [0x65,0x8b,0x05,0x7c,0x00,0x00,0x00] | 
|  | // FIXME: This is a correct bug poor encoding: Use 65 a1 7c 00 00 00 | 
|  | movl	%gs:124, %eax | 
|  |  | 
|  | // CHECK: pusha | 
|  | // CHECK:  encoding: [0x60] | 
|  | pusha | 
|  |  | 
|  | // CHECK: popa | 
|  | // CHECK:  encoding: [0x61] | 
|  | popa | 
|  |  | 
|  | // CHECK: pushal | 
|  | // CHECK:  encoding: [0x60] | 
|  | pushal | 
|  |  | 
|  | // CHECK: popal | 
|  | // CHECK:  encoding: [0x61] | 
|  | popal | 
|  |  | 
|  | // CHECK: jmpl *8(%eax) | 
|  | // CHECK:   encoding: [0xff,0x60,0x08] | 
|  | jmp	*8(%eax) | 
|  |  | 
|  | // PR7465 | 
|  | // CHECK: lcalll $2, $4660 | 
|  | // CHECK:   encoding: [0x9a,0x34,0x12,0x00,0x00,0x02,0x00] | 
|  | lcalll $0x2, $0x1234 | 
|  |  | 
|  |  | 
|  | // rdar://8061602 | 
|  | L1: | 
|  | jcxz L1 | 
|  | // CHECK: jcxz L1 | 
|  | // CHECK:   encoding: [0x67,0xe3,A] | 
|  | jecxz L1 | 
|  | // CHECK: jecxz L1 | 
|  | // CHECK:   encoding: [0xe3,A] | 
|  |  | 
|  | // rdar://8403974 | 
|  | iret | 
|  | // CHECK: iretl | 
|  | // CHECK: encoding: [0xcf] | 
|  | iretw | 
|  | // CHECK: iretw | 
|  | // CHECK: encoding: [0x66,0xcf] | 
|  | iretl | 
|  | // CHECK: iretl | 
|  | // CHECK: encoding: [0xcf] | 
|  |  | 
|  | // rdar://8403907 | 
|  | sysret | 
|  | // CHECK: sysretl | 
|  | // CHECK: encoding: [0x0f,0x07] | 
|  | sysretl | 
|  | // CHECK: sysretl | 
|  | // CHECK: encoding: [0x0f,0x07] | 
|  |  | 
|  | // rdar://8018260 | 
|  | testl	%ecx, -24(%ebp) | 
|  | // CHECK: testl	-24(%ebp), %ecx | 
|  | testl	-24(%ebp), %ecx | 
|  | // CHECK: testl	-24(%ebp), %ecx | 
|  |  | 
|  |  | 
|  | // rdar://8407242 | 
|  | push %cs | 
|  | // CHECK: pushl	%cs | 
|  | // CHECK: encoding: [0x0e] | 
|  | push %ds | 
|  | // CHECK: pushl	%ds | 
|  | // CHECK: encoding: [0x1e] | 
|  | push %ss | 
|  | // CHECK: pushl	%ss | 
|  | // CHECK: encoding: [0x16] | 
|  | push %es | 
|  | // CHECK: pushl	%es | 
|  | // CHECK: encoding: [0x06] | 
|  | push %fs | 
|  | // CHECK: pushl	%fs | 
|  | // CHECK: encoding: [0x0f,0xa0] | 
|  | push %gs | 
|  | // CHECK: pushl	%gs | 
|  | // CHECK: encoding: [0x0f,0xa8] | 
|  |  | 
|  | pushw %cs | 
|  | // CHECK: pushw	%cs | 
|  | // CHECK: encoding: [0x66,0x0e] | 
|  | pushw %ds | 
|  | // CHECK: pushw	%ds | 
|  | // CHECK: encoding: [0x66,0x1e] | 
|  | pushw %ss | 
|  | // CHECK: pushw	%ss | 
|  | // CHECK: encoding: [0x66,0x16] | 
|  | pushw %es | 
|  | // CHECK: pushw	%es | 
|  | // CHECK: encoding: [0x66,0x06] | 
|  | pushw %fs | 
|  | // CHECK: pushw	%fs | 
|  | // CHECK: encoding: [0x66,0x0f,0xa0] | 
|  | pushw %gs | 
|  | // CHECK: pushw	%gs | 
|  | // CHECK: encoding: [0x66,0x0f,0xa8] | 
|  |  | 
|  | pop %ss | 
|  | // CHECK: popl	%ss | 
|  | // CHECK: encoding: [0x17] | 
|  | pop %ds | 
|  | // CHECK: popl	%ds | 
|  | // CHECK: encoding: [0x1f] | 
|  | pop %es | 
|  | // CHECK: popl	%es | 
|  | // CHECK: encoding: [0x07] | 
|  |  | 
|  | // rdar://8408129 | 
|  | pushfd | 
|  | // CHECK: pushfl | 
|  | popfd | 
|  | // CHECK: popfl | 
|  | pushfl | 
|  | // CHECK: pushfl | 
|  | popfl | 
|  | // CHECK: popfl | 
|  |  | 
|  |  | 
|  | // rdar://8416805 | 
|  | setc	%bl | 
|  | setnae	%bl | 
|  | setnb	%bl | 
|  | setnc	%bl | 
|  | setna	%bl | 
|  | setnbe	%bl | 
|  | setpe	%bl | 
|  | setpo	%bl | 
|  | setnge	%bl | 
|  | setnl	%bl | 
|  | setng	%bl | 
|  | setnle	%bl | 
|  |  | 
|  | // PR8686 | 
|  | setneb  %cl // CHECK: setne %cl | 
|  | setcb	%bl // CHECK: setb %bl | 
|  | setnaeb	%bl // CHECK: setb %bl | 
|  |  | 
|  |  | 
|  | // CHECK: lcalll	$31438, $31438 | 
|  | // CHECK: lcalll	$31438, $31438 | 
|  | // CHECK: ljmpl	$31438, $31438 | 
|  | // CHECK: ljmpl	$31438, $31438 | 
|  |  | 
|  | calll	$0x7ace,$0x7ace | 
|  | lcalll	$0x7ace,$0x7ace | 
|  | jmpl	$0x7ace,$0x7ace | 
|  | ljmpl	$0x7ace,$0x7ace | 
|  |  | 
|  | // CHECK: lcalll	$31438, $31438 | 
|  | // CHECK: lcalll	$31438, $31438 | 
|  | // CHECK: ljmpl	$31438, $31438 | 
|  | // CHECK: ljmpl	$31438, $31438 | 
|  |  | 
|  | call	$0x7ace,$0x7ace | 
|  | lcall	$0x7ace,$0x7ace | 
|  | jmp	$0x7ace,$0x7ace | 
|  | ljmp	$0x7ace,$0x7ace | 
|  |  | 
|  | // rdar://8456370 | 
|  | // CHECK: calll a | 
|  | calll a | 
|  |  | 
|  | // CHECK:	incb	%al # encoding: [0xfe,0xc0] | 
|  | incb %al | 
|  |  | 
|  | // CHECK:	incw	%ax # encoding: [0x66,0x40] | 
|  | incw %ax | 
|  |  | 
|  | // CHECK:	incl	%eax # encoding: [0x40] | 
|  | incl %eax | 
|  |  | 
|  | // CHECK:	decb	%al # encoding: [0xfe,0xc8] | 
|  | decb %al | 
|  |  | 
|  | // CHECK:	decw	%ax # encoding: [0x66,0x48] | 
|  | decw %ax | 
|  |  | 
|  | // CHECK:	decl	%eax # encoding: [0x48] | 
|  | decl %eax | 
|  |  | 
|  | // CHECK: pshufw $14, %mm4, %mm0 # encoding: [0x0f,0x70,0xc4,0x0e] | 
|  | pshufw $14, %mm4, %mm0 | 
|  |  | 
|  | // CHECK: pshufw $90, %mm4, %mm0 # encoding: [0x0f,0x70,0xc4,0x5a] | 
|  | // PR8288 | 
|  | pshufw $90, %mm4, %mm0 | 
|  |  | 
|  | // rdar://8416805 | 
|  | // CHECK: aaa | 
|  | // CHECK:  encoding: [0x37] | 
|  | aaa | 
|  |  | 
|  | // CHECK: aad	$1 | 
|  | // CHECK:  encoding: [0xd5,0x01] | 
|  | aad	$1 | 
|  |  | 
|  | // CHECK: aad | 
|  | // CHECK:  encoding: [0xd5,0x0a] | 
|  | aad	$0xA | 
|  |  | 
|  | // CHECK: aad | 
|  | // CHECK:  encoding: [0xd5,0x0a] | 
|  | aad | 
|  |  | 
|  | // CHECK: aam	$2 | 
|  | // CHECK:  encoding: [0xd4,0x02] | 
|  | aam	$2 | 
|  |  | 
|  | // CHECK: aam | 
|  | // CHECK:  encoding: [0xd4,0x0a] | 
|  | aam	$0xA | 
|  |  | 
|  | // CHECK: aam | 
|  | // CHECK:  encoding: [0xd4,0x0a] | 
|  | aam | 
|  |  | 
|  | // CHECK: aas | 
|  | // CHECK:  encoding: [0x3f] | 
|  | aas | 
|  |  | 
|  | // CHECK: daa | 
|  | // CHECK:  encoding: [0x27] | 
|  | daa | 
|  |  | 
|  | // CHECK: das | 
|  | // CHECK:  encoding: [0x2f] | 
|  | das | 
|  |  | 
|  | // CHECK: retw	$31438 | 
|  | // CHECK:  encoding: [0x66,0xc2,0xce,0x7a] | 
|  | retw	$0x7ace | 
|  |  | 
|  | // CHECK: lretw	$31438 | 
|  | // CHECK:  encoding: [0x66,0xca,0xce,0x7a] | 
|  | lretw	$0x7ace | 
|  |  | 
|  | // CHECK: bound	2(%eax), %bx | 
|  | // CHECK:  encoding: [0x66,0x62,0x58,0x02] | 
|  | bound	2(%eax),%bx | 
|  |  | 
|  | // CHECK: bound	4(%ebx), %ecx | 
|  | // CHECK:  encoding: [0x62,0x4b,0x04] | 
|  | bound	4(%ebx),%ecx | 
|  |  | 
|  | // CHECK: arpl	%bx, %bx | 
|  | // CHECK:  encoding: [0x63,0xdb] | 
|  | arpl	%bx,%bx | 
|  |  | 
|  | // CHECK: arpl	%bx, 6(%ecx) | 
|  | // CHECK:  encoding: [0x63,0x59,0x06] | 
|  | arpl	%bx,6(%ecx) | 
|  |  | 
|  | // CHECK: lgdtw	4(%eax) | 
|  | // CHECK:  encoding: [0x66,0x0f,0x01,0x50,0x04] | 
|  | lgdtw	4(%eax) | 
|  |  | 
|  | // CHECK: lgdt	4(%eax) | 
|  | // CHECK:  encoding: [0x0f,0x01,0x50,0x04] | 
|  | lgdt	4(%eax) | 
|  |  | 
|  | // CHECK: lgdt	4(%eax) | 
|  | // CHECK:  encoding: [0x0f,0x01,0x50,0x04] | 
|  | lgdtl	4(%eax) | 
|  |  | 
|  | // CHECK: lidtw	4(%eax) | 
|  | // CHECK:  encoding: [0x66,0x0f,0x01,0x58,0x04] | 
|  | lidtw	4(%eax) | 
|  |  | 
|  | // CHECK: lidt	4(%eax) | 
|  | // CHECK:  encoding: [0x0f,0x01,0x58,0x04] | 
|  | lidt	4(%eax) | 
|  |  | 
|  | // CHECK: lidt	4(%eax) | 
|  | // CHECK:  encoding: [0x0f,0x01,0x58,0x04] | 
|  | lidtl	4(%eax) | 
|  |  | 
|  | // CHECK: sgdtw	4(%eax) | 
|  | // CHECK:  encoding: [0x66,0x0f,0x01,0x40,0x04] | 
|  | sgdtw	4(%eax) | 
|  |  | 
|  | // CHECK: sgdt	4(%eax) | 
|  | // CHECK:  encoding: [0x0f,0x01,0x40,0x04] | 
|  | sgdt	4(%eax) | 
|  |  | 
|  | // CHECK: sgdt	4(%eax) | 
|  | // CHECK:  encoding: [0x0f,0x01,0x40,0x04] | 
|  | sgdtl	4(%eax) | 
|  |  | 
|  | // CHECK: sidtw	4(%eax) | 
|  | // CHECK:  encoding: [0x66,0x0f,0x01,0x48,0x04] | 
|  | sidtw	4(%eax) | 
|  |  | 
|  | // CHECK: sidt	4(%eax) | 
|  | // CHECK:  encoding: [0x0f,0x01,0x48,0x04] | 
|  | sidt	4(%eax) | 
|  |  | 
|  | // CHECK: sidt	4(%eax) | 
|  | // CHECK:  encoding: [0x0f,0x01,0x48,0x04] | 
|  | sidtl	4(%eax) | 
|  |  | 
|  | // CHECK: fcompi	%st(2) | 
|  | // CHECK:  encoding: [0xdf,0xf2] | 
|  | fcompi	%st(2), %st | 
|  |  | 
|  | // CHECK: fcompi	%st(2) | 
|  | // CHECK:  encoding: [0xdf,0xf2] | 
|  | fcompi	%st(2) | 
|  |  | 
|  | // CHECK: fcompi | 
|  | // CHECK:  encoding: [0xdf,0xf1] | 
|  | fcompi | 
|  |  | 
|  | // CHECK: fucompi	%st(2) | 
|  | // CHECK:  encoding: [0xdf,0xea] | 
|  | fucompi	%st(2),%st | 
|  |  | 
|  | // CHECK: fucompi	%st(2) | 
|  | // CHECK:  encoding: [0xdf,0xea] | 
|  | fucompi	%st(2) | 
|  |  | 
|  | // CHECK: fucompi | 
|  | // CHECK:  encoding: [0xdf,0xe9] | 
|  | fucompi | 
|  |  | 
|  | // CHECK: fldcw	32493 | 
|  | // CHECK:  encoding: [0xd9,0x2d,0xed,0x7e,0x00,0x00] | 
|  | fldcww	0x7eed | 
|  |  | 
|  | // CHECK: fldcw	32493 | 
|  | // CHECK:  encoding: [0xd9,0x2d,0xed,0x7e,0x00,0x00] | 
|  | fldcw	0x7eed | 
|  |  | 
|  | // CHECK: fnstcw	32493 | 
|  | // CHECK:  encoding: [0xd9,0x3d,0xed,0x7e,0x00,0x00] | 
|  | fnstcww	0x7eed | 
|  |  | 
|  | // CHECK: fnstcw	32493 | 
|  | // CHECK:  encoding: [0xd9,0x3d,0xed,0x7e,0x00,0x00] | 
|  | fnstcw	0x7eed | 
|  |  | 
|  | // CHECK: wait | 
|  | // CHECK:  encoding: [0x9b] | 
|  | fstcww	0x7eed | 
|  |  | 
|  | // CHECK: wait | 
|  | // CHECK:  encoding: [0x9b] | 
|  | fstcw	0x7eed | 
|  |  | 
|  | // CHECK: fnstsw	32493 | 
|  | // CHECK:  encoding: [0xdd,0x3d,0xed,0x7e,0x00,0x00] | 
|  | fnstsww	0x7eed | 
|  |  | 
|  | // CHECK: fnstsw	32493 | 
|  | // CHECK:  encoding: [0xdd,0x3d,0xed,0x7e,0x00,0x00] | 
|  | fnstsw	0x7eed | 
|  |  | 
|  | // CHECK: wait | 
|  | // CHECK:  encoding: [0x9b] | 
|  | fstsww	0x7eed | 
|  |  | 
|  | // CHECK: wait | 
|  | // CHECK:  encoding: [0x9b] | 
|  | fstsw	0x7eed | 
|  |  | 
|  | // CHECK: verr	32493 | 
|  | // CHECK:  encoding: [0x0f,0x00,0x25,0xed,0x7e,0x00,0x00] | 
|  | verrw	0x7eed | 
|  |  | 
|  | // CHECK: verr	32493 | 
|  | // CHECK:  encoding: [0x0f,0x00,0x25,0xed,0x7e,0x00,0x00] | 
|  | verr	0x7eed | 
|  |  | 
|  | // CHECK: wait | 
|  | // CHECK:  encoding: [0x9b] | 
|  | fclex | 
|  |  | 
|  | // CHECK: fnclex | 
|  | // CHECK:  encoding: [0xdb,0xe2] | 
|  | fnclex | 
|  |  | 
|  | // CHECK: ud2 | 
|  | // CHECK:  encoding: [0x0f,0x0b] | 
|  | ud2 | 
|  |  | 
|  | // CHECK: ud2 | 
|  | // CHECK:  encoding: [0x0f,0x0b] | 
|  | ud2a | 
|  |  | 
|  | // CHECK: ud2b | 
|  | // CHECK:  encoding: [0x0f,0xb9] | 
|  | ud2b | 
|  |  | 
|  | // CHECK: loope 0 | 
|  | // CHECK: encoding: [0xe1,A] | 
|  | loopz 0 | 
|  |  | 
|  | // CHECK: loopne 0 | 
|  | // CHECK: encoding: [0xe0,A] | 
|  | loopnz 0 | 
|  |  | 
|  | // CHECK: outsb # encoding: [0x6e] | 
|  | // CHECK: outsb | 
|  | // CHECK: outsb | 
|  | outsb | 
|  | outsb	%ds:(%esi), %dx | 
|  | outsb	(%esi), %dx | 
|  |  | 
|  | // CHECK: outsw # encoding: [0x66,0x6f] | 
|  | // CHECK: outsw | 
|  | // CHECK: outsw | 
|  | outsw | 
|  | outsw	%ds:(%esi), %dx | 
|  | outsw	(%esi), %dx | 
|  |  | 
|  | // CHECK: outsl # encoding: [0x6f] | 
|  | // CHECK: outsl | 
|  | outsl | 
|  | outsl	%ds:(%esi), %dx | 
|  | outsl	(%esi), %dx | 
|  |  | 
|  | // CHECK: insb # encoding: [0x6c] | 
|  | // CHECK: insb | 
|  | insb | 
|  | insb	%dx, %es:(%edi) | 
|  |  | 
|  | // CHECK: insw # encoding: [0x66,0x6d] | 
|  | // CHECK: insw | 
|  | insw | 
|  | insw	%dx, %es:(%edi) | 
|  |  | 
|  | // CHECK: insl # encoding: [0x6d] | 
|  | // CHECK: insl | 
|  | insl | 
|  | insl	%dx, %es:(%edi) | 
|  |  | 
|  | // CHECK: movsb # encoding: [0xa4] | 
|  | // CHECK: movsb | 
|  | // CHECK: movsb | 
|  | movsb | 
|  | movsb	%ds:(%esi), %es:(%edi) | 
|  | movsb	(%esi), %es:(%edi) | 
|  |  | 
|  | // CHECK: movsw # encoding: [0x66,0xa5] | 
|  | // CHECK: movsw | 
|  | // CHECK: movsw | 
|  | movsw | 
|  | movsw	%ds:(%esi), %es:(%edi) | 
|  | movsw	(%esi), %es:(%edi) | 
|  |  | 
|  | // CHECK: movsd # encoding: [0xa5] | 
|  | // CHECK: movsd | 
|  | // CHECK: movsd | 
|  | movsl | 
|  | movsl	%ds:(%esi), %es:(%edi) | 
|  | movsl	(%esi), %es:(%edi) | 
|  |  | 
|  | // CHECK: lodsb # encoding: [0xac] | 
|  | // CHECK: lodsb | 
|  | // CHECK: lodsb | 
|  | // CHECK: lodsb | 
|  | // CHECK: lodsb | 
|  | lodsb | 
|  | lodsb	%ds:(%esi), %al | 
|  | lodsb	(%esi), %al | 
|  | lods	%ds:(%esi), %al | 
|  | lods	(%esi), %al | 
|  |  | 
|  | // CHECK: lodsw # encoding: [0x66,0xad] | 
|  | // CHECK: lodsw | 
|  | // CHECK: lodsw | 
|  | // CHECK: lodsw | 
|  | // CHECK: lodsw | 
|  | lodsw | 
|  | lodsw	%ds:(%esi), %ax | 
|  | lodsw	(%esi), %ax | 
|  | lods	%ds:(%esi), %ax | 
|  | lods	(%esi), %ax | 
|  |  | 
|  | // CHECK: lodsl # encoding: [0xad] | 
|  | // CHECK: lodsl | 
|  | // CHECK: lodsl | 
|  | // CHECK: lodsl | 
|  | // CHECK: lodsl | 
|  | lodsl | 
|  | lodsl	%ds:(%esi), %eax | 
|  | lodsl	(%esi), %eax | 
|  | lods	%ds:(%esi), %eax | 
|  | lods	(%esi), %eax | 
|  |  | 
|  | // CHECK: stosb # encoding: [0xaa] | 
|  | // CHECK: stosb | 
|  | // CHECK: stosb | 
|  | stosb | 
|  | stosb	%al, %es:(%edi) | 
|  | stos	%al, %es:(%edi) | 
|  |  | 
|  | // CHECK: stosw # encoding: [0x66,0xab] | 
|  | // CHECK: stosw | 
|  | // CHECK: stosw | 
|  | stosw | 
|  | stosw	%ax, %es:(%edi) | 
|  | stos	%ax, %es:(%edi) | 
|  |  | 
|  | // CHECK: stosl # encoding: [0xab] | 
|  | // CHECK: stosl | 
|  | // CHECK: stosl | 
|  | stosl | 
|  | stosl	%eax, %es:(%edi) | 
|  | stos	%eax, %es:(%edi) | 
|  |  | 
|  | // CHECK: strw | 
|  | // CHECK: encoding: [0x66,0x0f,0x00,0xc8] | 
|  | str %ax | 
|  |  | 
|  | // CHECK: strl | 
|  | // CHECK: encoding: [0x0f,0x00,0xc8] | 
|  | str %eax | 
|  |  | 
|  |  | 
|  | // PR9378 | 
|  | // CHECK: fsubp | 
|  | // CHECK: encoding: [0xde,0xe1] | 
|  | fsubp %st,%st(1) | 
|  |  | 
|  | // PR9164 | 
|  | // CHECK: fsubp	%st(2) | 
|  | // CHECK: encoding: [0xde,0xe2] | 
|  | fsubp   %st, %st(2) | 
|  |  | 
|  | // PR10345 | 
|  | // CHECK: xchgl %eax, %eax | 
|  | // CHECK: encoding: [0x90] | 
|  | xchgl %eax, %eax | 
|  |  | 
|  | // CHECK: xchgw %ax, %ax | 
|  | // CHECK: encoding: [0x66,0x90] | 
|  | xchgw %ax, %ax | 
|  |  | 
|  | // CHECK: xchgl %ecx, %eax | 
|  | // CHECK: encoding: [0x91] | 
|  | xchgl %ecx, %eax | 
|  |  | 
|  | // CHECK: xchgl %ecx, %eax | 
|  | // CHECK: encoding: [0x91] | 
|  | xchgl %eax, %ecx |