diff options
Diffstat (limited to 'test/MC/X86/x86-16.s')
-rw-r--r-- | test/MC/X86/x86-16.s | 949 |
1 files changed, 949 insertions, 0 deletions
diff --git a/test/MC/X86/x86-16.s b/test/MC/X86/x86-16.s new file mode 100644 index 0000000..1f87c81 --- /dev/null +++ b/test/MC/X86/x86-16.s @@ -0,0 +1,949 @@ +// RUN: llvm-mc -triple i386-unknown-unknown-code16 --show-encoding %s | FileCheck %s + + movl $0x12345678, %ebx +// CHECK: movl +// CHECK: encoding: [0x66,0xbb,0x78,0x56,0x34,0x12] + pause +// CHECK: pause +// CHECK: encoding: [0xf3,0x90] + sfence +// CHECK: sfence +// CHECK: encoding: [0x0f,0xae,0xf8] + lfence +// CHECK: lfence +// CHECK: encoding: [0x0f,0xae,0xe8] + mfence + stgi +// CHECK: stgi +// CHECK: encoding: [0x0f,0x01,0xdc] + clgi +// CHECK: clgi +// CHECK: encoding: [0x0f,0x01,0xdd] + + rdtscp +// CHECK: rdtscp +// CHECK: encoding: [0x0f,0x01,0xf9] + + +// CHECK: movl %eax, 16(%ebp) # encoding: [0x67,0x66,0x89,0x45,0x10] + movl %eax, 16(%ebp) +// CHECK: movl %eax, -16(%ebp) # encoding: [0x67,0x66,0x89,0x45,0xf0] + movl %eax, -16(%ebp) + +// CHECK: testb %bl, %cl # encoding: [0x84,0xcb] + testb %bl, %cl + +// CHECK: cmpl %eax, %ebx # encoding: [0x66,0x39,0xc3] + cmpl %eax, %ebx + +// CHECK: addw %ax, %ax # encoding: [0x01,0xc0] + addw %ax, %ax + +// CHECK: shrl %eax # encoding: [0x66,0xd1,0xe8] + shrl $1, %eax + +// CHECK: shll %eax # encoding: [0x66,0xd1,0xe0] + sall $1, %eax +// CHECK: shll %eax # encoding: [0x66,0xd1,0xe0] + sal $1, %eax + +// moffset forms of moves + +// CHECK: movb 0, %al # encoding: [0xa0,0x00,0x00] +movb 0, %al + +// CHECK: movw 0, %ax # encoding: [0xa1,0x00,0x00] +movw 0, %ax + +// CHECK: movl 0, %eax # encoding: [0x66,0xa1,0x00,0x00] +movl 0, %eax + +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: pushfw # encoding: [0x9c] + pushf +// CHECK: pushfl # encoding: [0x66,0x9c] + pushfl +// CHECK: popfw # encoding: [0x9d] + popf +// CHECK: popfl # encoding: [0x66,0x9d] + popfl + +retl +// CHECK: ret +// CHECK: encoding: [0x66,0xc3] + +// CHECK: cmoval %eax, %edx +// CHECK: encoding: [0x66,0x0f,0x47,0xd0] + cmoval %eax,%edx + +// CHECK: cmovael %eax, %edx +// CHECK: encoding: [0x66,0x0f,0x43,0xd0] + cmovael %eax,%edx + +// CHECK: cmovbel %eax, %edx +// CHECK: encoding: [0x66,0x0f,0x46,0xd0] + cmovbel %eax,%edx + +// CHECK: cmovbl %eax, %edx +// CHECK: encoding: [0x66,0x0f,0x42,0xd0] + cmovbl %eax,%edx + +// CHECK: cmovbw %bx, %bx +cmovnae %bx,%bx + + +// CHECK: cmovbel %eax, %edx +// CHECK: encoding: [0x66,0x0f,0x46,0xd0] + cmovbel %eax,%edx + +// CHECK: cmovbl %eax, %edx +// CHECK: encoding: [0x66,0x0f,0x42,0xd0] + cmovcl %eax,%edx + +// CHECK: cmovel %eax, %edx +// CHECK: encoding: [0x66,0x0f,0x44,0xd0] + cmovel %eax,%edx + +// CHECK: cmovgl %eax, %edx +// CHECK: encoding: [0x66,0x0f,0x4f,0xd0] + cmovgl %eax,%edx + +// CHECK: cmovgel %eax, %edx +// CHECK: encoding: [0x66,0x0f,0x4d,0xd0] + cmovgel %eax,%edx + +// CHECK: cmovll %eax, %edx +// CHECK: encoding: [0x66,0x0f,0x4c,0xd0] + cmovll %eax,%edx + +// CHECK: cmovlel %eax, %edx +// CHECK: encoding: [0x66,0x0f,0x4e,0xd0] + cmovlel %eax,%edx + +// CHECK: cmovbel %eax, %edx +// CHECK: encoding: [0x66,0x0f,0x46,0xd0] + cmovnal %eax,%edx + +// CHECK: cmovnel %eax, %edx +// CHECK: encoding: [0x66,0x0f,0x45,0xd0] + cmovnel %eax,%edx + +// CHECK: cmovael %eax, %edx +// CHECK: encoding: [0x66,0x0f,0x43,0xd0] + cmovnbl %eax,%edx + +// CHECK: cmoval %eax, %edx +// CHECK: encoding: [0x66,0x0f,0x47,0xd0] + cmovnbel %eax,%edx + +// CHECK: cmovael %eax, %edx +// CHECK: encoding: [0x66,0x0f,0x43,0xd0] + cmovncl %eax,%edx + +// CHECK: cmovnel %eax, %edx +// CHECK: encoding: [0x66,0x0f,0x45,0xd0] + cmovnel %eax,%edx + +// CHECK: cmovlel %eax, %edx +// CHECK: encoding: [0x66,0x0f,0x4e,0xd0] + cmovngl %eax,%edx + +// CHECK: cmovgel %eax, %edx +// CHECK: encoding: [0x66,0x0f,0x4d,0xd0] + cmovnl %eax,%edx + +// CHECK: cmovnel %eax, %edx +// CHECK: encoding: [0x66,0x0f,0x45,0xd0] + cmovnel %eax,%edx + +// CHECK: cmovlel %eax, %edx +// CHECK: encoding: [0x66,0x0f,0x4e,0xd0] + cmovngl %eax,%edx + +// CHECK: cmovll %eax, %edx +// CHECK: encoding: [0x66,0x0f,0x4c,0xd0] + cmovngel %eax,%edx + +// CHECK: cmovgel %eax, %edx +// CHECK: encoding: [0x66,0x0f,0x4d,0xd0] + cmovnll %eax,%edx + +// CHECK: cmovgl %eax, %edx +// CHECK: encoding: [0x66,0x0f,0x4f,0xd0] + cmovnlel %eax,%edx + +// CHECK: cmovnol %eax, %edx +// CHECK: encoding: [0x66,0x0f,0x41,0xd0] + cmovnol %eax,%edx + +// CHECK: cmovnpl %eax, %edx +// CHECK: encoding: [0x66,0x0f,0x4b,0xd0] + cmovnpl %eax,%edx + +// CHECK: cmovnsl %eax, %edx +// CHECK: encoding: [0x66,0x0f,0x49,0xd0] + cmovnsl %eax,%edx + +// CHECK: cmovnel %eax, %edx +// CHECK: encoding: [0x66,0x0f,0x45,0xd0] + cmovnzl %eax,%edx + +// CHECK: cmovol %eax, %edx +// CHECK: encoding: [0x66,0x0f,0x40,0xd0] + cmovol %eax,%edx + +// CHECK: cmovpl %eax, %edx +// CHECK: encoding: [0x66,0x0f,0x4a,0xd0] + cmovpl %eax,%edx + +// CHECK: cmovsl %eax, %edx +// CHECK: encoding: [0x66,0x0f,0x48,0xd0] + cmovsl %eax,%edx + +// CHECK: cmovel %eax, %edx +// CHECK: encoding: [0x66,0x0f,0x44,0xd0] + cmovzl %eax,%edx + +// 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 + +// CHECK: movl %cs, %eax +// CHECK: encoding: [0x66,0x8c,0xc8] + movl %cs, %eax + +// CHECK: movw %cs, %ax +// CHECK: encoding: [0x8c,0xc8] + movw %cs, %ax + +// CHECK: movl %cs, (%eax) +// CHECK: encoding: [0x67,0x66,0x8c,0x08] + movl %cs, (%eax) + +// CHECK: movw %cs, (%eax) +// CHECK: encoding: [0x67,0x8c,0x08] + movw %cs, (%eax) + +// CHECK: movl %eax, %cs +// CHECK: encoding: [0x66,0x8e,0xc8] + movl %eax, %cs + +// CHECK: movl (%eax), %cs +// CHECK: encoding: [0x67,0x66,0x8e,0x08] + movl (%eax), %cs + +// CHECK: movw (%eax), %cs +// CHECK: encoding: [0x67,0x8e,0x08] + movw (%eax), %cs + +// 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 + +// CHECK: wait +// CHECK: encoding: [0x9b] + fwait + +// CHECK: [0x66,0x65,0xa1,0x7c,0x00] + movl %gs:124, %eax + +// CHECK: pusha +// CHECK: encoding: [0x60] + pusha + +// CHECK: popa +// CHECK: encoding: [0x61] + popa + +// CHECK: pushaw +// CHECK: encoding: [0x60] + pushaw + +// CHECK: popaw +// CHECK: encoding: [0x61] + popaw + +// CHECK: pushal +// CHECK: encoding: [0x66,0x60] + pushal + +// CHECK: popal +// CHECK: encoding: [0x66,0x61] + popal + +// CHECK: jmpw *8(%eax) +// CHECK: encoding: [0x67,0xff,0x60,0x08] + jmp *8(%eax) + +// CHECK: jmpl *8(%eax) +// CHECK: encoding: [0x67,0x66,0xff,0x60,0x08] + jmpl *8(%eax) + +// CHECK: lcalll $2, $4660 +// CHECK: encoding: [0x66,0x9a,0x34,0x12,0x00,0x00,0x02,0x00] +lcalll $0x2, $0x1234 + + +L1: + jcxz L1 +// CHECK: jcxz L1 +// CHECK: encoding: [0xe3,A] + jecxz L1 +// CHECK: jecxz L1 +// CHECK: encoding: [0x67,0xe3,A] + +iret +// CHECK: iretw +// CHECK: encoding: [0xcf] +iretw +// CHECK: iretw +// CHECK: encoding: [0xcf] +iretl +// CHECK: iretl +// CHECK: encoding: [0x66,0xcf] + +sysret +// CHECK: sysretl +// CHECK: encoding: [0x0f,0x07] +sysretl +// CHECK: sysretl +// CHECK: encoding: [0x0f,0x07] + +testl %ecx, -24(%ebp) +// CHECK: testl -24(%ebp), %ecx +testl -24(%ebp), %ecx +// CHECK: testl -24(%ebp), %ecx + + +push %cs +// CHECK: pushw %cs +// CHECK: encoding: [0x0e] +push %ds +// CHECK: pushw %ds +// CHECK: encoding: [0x1e] +push %ss +// CHECK: pushw %ss +// CHECK: encoding: [0x16] +push %es +// CHECK: pushw %es +// CHECK: encoding: [0x06] +push %fs +// CHECK: pushw %fs +// CHECK: encoding: [0x0f,0xa0] +push %gs +// CHECK: pushw %gs +// CHECK: encoding: [0x0f,0xa8] + +pushw %cs +// CHECK: pushw %cs +// CHECK: encoding: [0x0e] +pushw %ds +// CHECK: pushw %ds +// CHECK: encoding: [0x1e] +pushw %ss +// CHECK: pushw %ss +// CHECK: encoding: [0x16] +pushw %es +// CHECK: pushw %es +// CHECK: encoding: [0x06] +pushw %fs +// CHECK: pushw %fs +// CHECK: encoding: [0x0f,0xa0] +pushw %gs +// CHECK: pushw %gs +// CHECK: encoding: [0x0f,0xa8] + +pushl %cs +// CHECK: pushl %cs +// CHECK: encoding: [0x66,0x0e] +pushl %ds +// CHECK: pushl %ds +// CHECK: encoding: [0x66,0x1e] +pushl %ss +// CHECK: pushl %ss +// CHECK: encoding: [0x66,0x16] +pushl %es +// CHECK: pushl %es +// CHECK: encoding: [0x66,0x06] +pushl %fs +// CHECK: pushl %fs +// CHECK: encoding: [0x66,0x0f,0xa0] +pushl %gs +// CHECK: pushl %gs +// CHECK: encoding: [0x66,0x0f,0xa8] + +pop %ss +// CHECK: popw %ss +// CHECK: encoding: [0x17] +pop %ds +// CHECK: popw %ds +// CHECK: encoding: [0x1f] +pop %es +// CHECK: popw %es +// CHECK: encoding: [0x07] + +popl %ss +// CHECK: popl %ss +// CHECK: encoding: [0x66,0x17] +popl %ds +// CHECK: popl %ds +// CHECK: encoding: [0x66,0x1f] +popl %es +// CHECK: popl %es +// CHECK: encoding: [0x66,0x07] + +pushfd +// CHECK: pushfl +popfd +// CHECK: popfl +pushfl +// CHECK: pushfl +popfl +// CHECK: popfl + + + setc %bl + setnae %bl + setnb %bl + setnc %bl + setna %bl + setnbe %bl + setpe %bl + setpo %bl + setnge %bl + setnl %bl + setng %bl + setnle %bl + + 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: lcallw $31438, $31438 +// CHECK: lcallw $31438, $31438 +// CHECK: ljmpw $31438, $31438 +// CHECK: ljmpw $31438, $31438 + +callw $0x7ace,$0x7ace +lcallw $0x7ace,$0x7ace +jmpw $0x7ace,$0x7ace +ljmpw $0x7ace,$0x7ace + +// CHECK: lcallw $31438, $31438 +// CHECK: lcallw $31438, $31438 +// CHECK: ljmpw $31438, $31438 +// CHECK: ljmpw $31438, $31438 + +call $0x7ace,$0x7ace +lcall $0x7ace,$0x7ace +jmp $0x7ace,$0x7ace +ljmp $0x7ace,$0x7ace + +// CHECK: calll a + calll a + +// CHECK: incb %al # encoding: [0xfe,0xc0] + incb %al + +// CHECK: incw %ax # encoding: [0x40] + incw %ax + +// CHECK: incl %eax # encoding: [0x66,0x40] + incl %eax + +// CHECK: decb %al # encoding: [0xfe,0xc8] + decb %al + +// CHECK: decw %ax # encoding: [0x48] + decw %ax + +// CHECK: decl %eax # encoding: [0x66,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] +pshufw $90, %mm4, %mm0 + +// 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: [0xc2,0xce,0x7a] + retw $0x7ace + +// CHECK: lretw $31438 +// CHECK: encoding: [0xca,0xce,0x7a] + lretw $0x7ace + +// CHECK: retw $31438 +// CHECK: encoding: [0xc2,0xce,0x7a] + ret $0x7ace + +// CHECK: lretw $31438 +// CHECK: encoding: [0xca,0xce,0x7a] + lret $0x7ace + +// CHECK: retl $31438 +// CHECK: encoding: [0x66,0xc2,0xce,0x7a] + retl $0x7ace + +// CHECK: lretl $31438 +// CHECK: encoding: [0x66,0xca,0xce,0x7a] + lretl $0x7ace + +// CHECK: bound 2(%eax), %bx +// CHECK: encoding: [0x67,0x62,0x58,0x02] + bound 2(%eax),%bx + +// CHECK: bound 4(%ebx), %ecx +// CHECK: encoding: [0x67,0x66,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: [0x67,0x63,0x59,0x06] + arpl %bx,6(%ecx) + +// CHECK: lgdtw 4(%eax) +// CHECK: encoding: [0x67,0x0f,0x01,0x50,0x04] + lgdtw 4(%eax) + +// CHECK: lgdtw 4(%eax) +// CHECK: encoding: [0x67,0x0f,0x01,0x50,0x04] + lgdt 4(%eax) + +// CHECK: lgdtl 4(%eax) +// CHECK: encoding: [0x67,0x66,0x0f,0x01,0x50,0x04] + lgdtl 4(%eax) + +// CHECK: lidtw 4(%eax) +// CHECK: encoding: [0x67,0x0f,0x01,0x58,0x04] + lidtw 4(%eax) + +// CHECK: lidtw 4(%eax) +// CHECK: encoding: [0x67,0x0f,0x01,0x58,0x04] + lidt 4(%eax) + +// CHECK: lidtl 4(%eax) +// CHECK: encoding: [0x67,0x66,0x0f,0x01,0x58,0x04] + lidtl 4(%eax) + +// CHECK: sgdtw 4(%eax) +// CHECK: encoding: [0x67,0x0f,0x01,0x40,0x04] + sgdtw 4(%eax) + +// CHECK: sgdtw 4(%eax) +// CHECK: encoding: [0x67,0x0f,0x01,0x40,0x04] + sgdt 4(%eax) + +// CHECK: sgdtl 4(%eax) +// CHECK: encoding: [0x67,0x66,0x0f,0x01,0x40,0x04] + sgdtl 4(%eax) + +// CHECK: sidtw 4(%eax) +// CHECK: encoding: [0x67,0x0f,0x01,0x48,0x04] + sidtw 4(%eax) + +// CHECK: sidtw 4(%eax) +// CHECK: encoding: [0x67,0x0f,0x01,0x48,0x04] + sidt 4(%eax) + +// CHECK: sidtl 4(%eax) +// CHECK: encoding: [0x67,0x66,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,0x2e,0xed,0x7e] + fldcww 0x7eed + +// CHECK: fldcw 32493 +// CHECK: encoding: [0xd9,0x2e,0xed,0x7e] + fldcw 0x7eed + +// CHECK: fnstcw 32493 +// CHECK: encoding: [0xd9,0x3e,0xed,0x7e] + fnstcww 0x7eed + +// CHECK: fnstcw 32493 +// CHECK: encoding: [0xd9,0x3e,0xed,0x7e] + fnstcw 0x7eed + +// CHECK: wait +// CHECK: encoding: [0x9b] + fstcww 0x7eed + +// CHECK: wait +// CHECK: encoding: [0x9b] + fstcw 0x7eed + +// CHECK: fnstsw 32493 +// CHECK: encoding: [0xdd,0x3e,0xed,0x7e] + fnstsww 0x7eed + +// CHECK: fnstsw 32493 +// CHECK: encoding: [0xdd,0x3e,0xed,0x7e] + fnstsw 0x7eed + +// CHECK: wait +// CHECK: encoding: [0x9b] + fstsww 0x7eed + +// CHECK: wait +// CHECK: encoding: [0x9b] + fstsw 0x7eed + +// CHECK: verr 32493 +// CHECK: encoding: [0x0f,0x00,0x26,0xed,0x7e] + verrw 0x7eed + +// CHECK: verr 32493 +// CHECK: encoding: [0x0f,0x00,0x26,0xed,0x7e] + 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 (%si), %dx # encoding: [0x6e] +// CHECK: outsb +// CHECK: outsb + outsb + outsb %ds:(%si), %dx + outsb (%si), %dx + +// CHECK: outsw (%si), %dx # encoding: [0x6f] +// CHECK: outsw +// CHECK: outsw + outsw + outsw %ds:(%si), %dx + outsw (%si), %dx + +// CHECK: outsl (%si), %dx # encoding: [0x66,0x6f] +// CHECK: outsl + outsl + outsl %ds:(%si), %dx + outsl (%si), %dx + +// CHECK: insb %dx, %es:(%di) # encoding: [0x6c] +// CHECK: insb + insb + insb %dx, %es:(%di) + +// CHECK: insw %dx, %es:(%di) # encoding: [0x6d] +// CHECK: insw + insw + insw %dx, %es:(%di) + +// CHECK: insl %dx, %es:(%di) # encoding: [0x66,0x6d] +// CHECK: insl + insl + insl %dx, %es:(%di) + +// CHECK: movsb (%si), %es:(%di) # encoding: [0xa4] +// CHECK: movsb +// CHECK: movsb + movsb + movsb %ds:(%si), %es:(%di) + movsb (%si), %es:(%di) + +// CHECK: movsw (%si), %es:(%di) # encoding: [0xa5] +// CHECK: movsw +// CHECK: movsw + movsw + movsw %ds:(%si), %es:(%di) + movsw (%si), %es:(%di) + +// CHECK: movsl (%si), %es:(%di) # encoding: [0x66,0xa5] +// CHECK: movsl +// CHECK: movsl + movsl + movsl %ds:(%si), %es:(%di) + movsl (%si), %es:(%di) + +// CHECK: lodsb (%si), %al # encoding: [0xac] +// CHECK: lodsb +// CHECK: lodsb +// CHECK: lodsb +// CHECK: lodsb + lodsb + lodsb %ds:(%si), %al + lodsb (%si), %al + lods %ds:(%si), %al + lods (%si), %al + +// CHECK: lodsw (%si), %ax # encoding: [0xad] +// CHECK: lodsw +// CHECK: lodsw +// CHECK: lodsw +// CHECK: lodsw + lodsw + lodsw %ds:(%si), %ax + lodsw (%si), %ax + lods %ds:(%si), %ax + lods (%si), %ax + +// CHECK: lodsl (%si), %eax # encoding: [0x66,0xad] +// CHECK: lodsl +// CHECK: lodsl +// CHECK: lodsl +// CHECK: lodsl + lodsl + lodsl %ds:(%si), %eax + lodsl (%si), %eax + lods %ds:(%si), %eax + lods (%si), %eax + +// CHECK: stosb %al, %es:(%di) # encoding: [0xaa] +// CHECK: stosb +// CHECK: stosb + stosb + stosb %al, %es:(%di) + stos %al, %es:(%di) + +// CHECK: stosw %ax, %es:(%di) # encoding: [0xab] +// CHECK: stosw +// CHECK: stosw + stosw + stosw %ax, %es:(%di) + stos %ax, %es:(%di) + +// CHECK: stosl %eax, %es:(%di) # encoding: [0x66,0xab] +// CHECK: stosl +// CHECK: stosl + stosl + stosl %eax, %es:(%di) + stos %eax, %es:(%di) + +// CHECK: strw +// CHECK: encoding: [0x0f,0x00,0xc8] + str %ax + +// CHECK: strl +// CHECK: encoding: [0x66,0x0f,0x00,0xc8] + str %eax + + +// CHECK: fsubp +// CHECK: encoding: [0xde,0xe1] +fsubp %st,%st(1) + +// CHECK: fsubp %st(2) +// CHECK: encoding: [0xde,0xe2] +fsubp %st, %st(2) + +// CHECK: xchgl %eax, %eax +// CHECK: encoding: [0x66,0x90] +xchgl %eax, %eax + +// CHECK: xchgw %ax, %ax +// CHECK: encoding: [0x90] +xchgw %ax, %ax + +// CHECK: xchgl %ecx, %eax +// CHECK: encoding: [0x66,0x91] +xchgl %ecx, %eax + +// CHECK: xchgl %ecx, %eax +// CHECK: encoding: [0x66,0x91] +xchgl %eax, %ecx + +// CHECK: retw +// CHECK: encoding: [0xc3] +retw + +// CHECK: retl +// CHECK: encoding: [0x66,0xc3] +retl + +// CHECK: lretw +// CHECK: encoding: [0xcb] +lretw + +// CHECK: lretl +// CHECK: encoding: [0x66,0xcb] +lretl |