# RUN: llvm-mc --disassemble %s -triple=i686-linux-gnu-code16 | FileCheck %s # CHECK: movl $305419896, %ebx 0x66 0xbb 0x78 0x56 0x34 0x12 # CHECK: pause 0xf3 0x90 # CHECK: sfence 0x0f 0xae 0xf8 # CHECK: lfence 0x0f 0xae 0xe8 # CHECK: mfence 0x0f 0xae 0xf0 # CHECK: stgi 0x0f 0x01 0xdc # CHECK: clgi 0x0f 0x01 0xdd # CHECK: rdtscp 0x0f 0x01 0xf9 # CHECK: movl %eax, 16(%ebp) 0x67 0x66 0x89 0x45 0x10 # CHECK: movl %eax, -16(%ebp) 0x67 0x66 0x89 0x45 0xf0 # CHECK: testb %cl, %bl 0x84 0xcb # CHECK: cmpl %eax, %ebx 0x66 0x39 0xc3 # CHECK: addw %ax, %ax 0x01 0xc0 # CHECK: shrl %eax 0x66 0xd1 0xe8 # CHECK: shll %eax 0x66 0xd1 0xe0 # CHECK: shll %eax 0x66 0xd1 0xe0 # CHECK: movb 0, %al 0xa0 0x00 0x00 # CHECK: movw 0, %ax 0xa1 0x00 0x00 # CHECK: movl 0, %eax 0x66 0xa1 0x00 0x00 # CHECK: into 0xce # CHECK: int3 0xcc # CHECK: int $4 0xcd 0x04 # CHECK: int $127 0xcd 0x7f # CHECK: pushfw 0x9c # CHECK: pushfl 0x66 0x9c # CHECK: popfw 0x9d # CHECK: popfl 0x66 0x9d # CHECK: retl 0x66 0xc3 # CHECK: cmoval %eax, %edx 0x66 0x0f 0x47 0xd0 # CHECK: cmovael %eax, %edx 0x66 0x0f 0x43 0xd0 # CHECK: cmovbel %eax, %edx 0x66 0x0f 0x46 0xd0 # CHECK: cmovbl %eax, %edx 0x66 0x0f 0x42 0xd0 # CHECK: cmovbw %bx, %bx 0x0f 0x42 0xdb # CHECK: cmovbel %eax, %edx 0x66 0x0f 0x46 0xd0 # CHECK: cmovbl %eax, %edx 0x66 0x0f 0x42 0xd0 # CHECK: cmovel %eax, %edx 0x66 0x0f 0x44 0xd0 # CHECK: cmovgl %eax, %edx 0x66 0x0f 0x4f 0xd0 # CHECK: cmovgel %eax, %edx 0x66 0x0f 0x4d 0xd0 # CHECK: cmovll %eax, %edx 0x66 0x0f 0x4c 0xd0 # CHECK: cmovlel %eax, %edx 0x66 0x0f 0x4e 0xd0 # CHECK: cmovbel %eax, %edx 0x66 0x0f 0x46 0xd0 # CHECK: cmovnel %eax, %edx 0x66 0x0f 0x45 0xd0 # CHECK: cmovael %eax, %edx 0x66 0x0f 0x43 0xd0 # CHECK: cmoval %eax, %edx 0x66 0x0f 0x47 0xd0 # CHECK: cmovael %eax, %edx 0x66 0x0f 0x43 0xd0 # CHECK: cmovnel %eax, %edx 0x66 0x0f 0x45 0xd0 # CHECK: cmovlel %eax, %edx 0x66 0x0f 0x4e 0xd0 # CHECK: cmovgel %eax, %edx 0x66 0x0f 0x4d 0xd0 # CHECK: cmovnel %eax, %edx 0x66 0x0f 0x45 0xd0 # CHECK: cmovlel %eax, %edx 0x66 0x0f 0x4e 0xd0 # CHECK: cmovll %eax, %edx 0x66 0x0f 0x4c 0xd0 # CHECK: cmovgel %eax, %edx 0x66 0x0f 0x4d 0xd0 # CHECK: cmovgl %eax, %edx 0x66 0x0f 0x4f 0xd0 # CHECK: cmovnol %eax, %edx 0x66 0x0f 0x41 0xd0 # CHECK: cmovnpl %eax, %edx 0x66 0x0f 0x4b 0xd0 # CHECK: cmovnsl %eax, %edx 0x66 0x0f 0x49 0xd0 # CHECK: cmovnel %eax, %edx 0x66 0x0f 0x45 0xd0 # CHECK: cmovol %eax, %edx 0x66 0x0f 0x40 0xd0 # CHECK: cmovpl %eax, %edx 0x66 0x0f 0x4a 0xd0 # CHECK: cmovsl %eax, %edx 0x66 0x0f 0x48 0xd0 # CHECK: cmovel %eax, %edx 0x66 0x0f 0x44 0xd0 # CHECK: fmul %st(0) 0xd8 0xc8 # CHECK: fadd %st(0) 0xd8 0xc0 # CHECK: fsub %st(0) 0xd8 0xe0 # CHECK: fsubr %st(0) 0xd8 0xe8 # CHECK: fdivr %st(0) 0xd8 0xf8 # CHECK: fdiv %st(0) 0xd8 0xf0 # CHECK: movl %cs, %eax 0x66 0x8c 0xc8 # CHECK: movw %cs, %ax 0x8c 0xc8 # CHECK: movl %cs, (%eax) 0x67 0x66 0x8c 0x08 # CHECK: movw %cs, (%eax) 0x67 0x8c 0x08 # CHECK: movl %eax, %cs 0x66 0x8e 0xc8 # CHECK: movl (%eax), %cs 0x67 0x66 0x8e 0x08 # CHECK: movw (%eax), %cs 0x67 0x8e 0x08 # CHECKX: movl %cr0, %eax 0x0f 0x20 0xc0 # CHECKX: movl %cr1, %eax 0x0f 0x20 0xc8 # CHECKX: movl %cr2, %eax 0x0f 0x20 0xd0 # CHECKX: movl %cr3, %eax 0x0f 0x20 0xd8 # CHECKX: movl %cr4, %eax 0x0f 0x20 0xe0 # CHECKX: movl %dr0, %eax 0x0f 0x21 0xc0 # CHECKX: movl %dr1, %eax 0x0f 0x21 0xc8 # CHECKX: movl %dr1, %eax 0x0f 0x21 0xc8 # CHECKX: movl %dr2, %eax 0x0f 0x21 0xd0 # CHECKX: movl %dr3, %eax 0x0f 0x21 0xd8 # CHECKX: movl %dr4, %eax 0x0f 0x21 0xe0 # CHECKX: movl %dr5, %eax 0x0f 0x21 0xe8 # CHECKX: movl %dr6, %eax 0x0f 0x21 0xf0 # CHECKX: movl %dr7, %eax 0x0f 0x21 0xf8 # CHECK: wait 0x9b # CHECK: movl %gs:124, %eax 0x65 0x66 0x8b 0x06 0x7c 0x00 # CHECK: pushaw 0x60 # CHECK: popaw 0x61 # CHECK: pushaw 0x60 # CHECK: popaw 0x61 # CHECK: pushal 0x66 0x60 # CHECK: popal 0x66 0x61 # CHECK: jmpw *8(%eax) 0x67 0xff 0x60 0x08 # CHECK: jmpl *8(%eax) 0x67 0x66 0xff 0x60 0x08 # CHECK: lcalll $2, $4660 0x66 0x9a 0x34 0x12 0x00 0x00 0x02 0x00 # CHECK: jcxz 0xe3 0x00 # CHECK: jecxz 0x67 0xe3 0x00 # CHECK: iretw 0xcf # CHECK: iretw 0xcf # CHECK: iretl 0x66 0xcf # CHECK: sysretl 0x0f 0x07 # CHECK: sysretl 0x0f 0x07 # CHECK: testl -24(%ebp), %ecx 0x67 0x66 0x85 0x4d 0xe8 # CHECK: testl -24(%ebp), %ecx 0x67 0x66 0x85 0x4d 0xe8 # CHECK: pushw %cs 0x0e # CHECK: pushw %ds 0x1e # CHECK: pushw %ss 0x16 # CHECK: pushw %es 0x06 # CHECK: pushw %fs 0x0f 0xa0 # CHECK: pushw %gs 0x0f 0xa8 # CHECK: pushw %cs 0x0e # CHECK: pushw %ds 0x1e # CHECK: pushw %ss 0x16 # CHECK: pushw %es 0x06 # CHECK: pushw %fs 0x0f 0xa0 # CHECK: pushw %gs 0x0f 0xa8 # CHECK: pushl %cs 0x66 0x0e # CHECK: pushl %ds 0x66 0x1e # CHECK: pushl %ss 0x66 0x16 # CHECK: pushl %es 0x66 0x06 # CHECK: pushl %fs 0x66 0x0f 0xa0 # CHECK: pushl %gs 0x66 0x0f 0xa8 # CHECK: popw %ss 0x17 # CHECK: popw %ds 0x1f # CHECK: popw %es 0x07 # CHECK: popl %ss 0x66 0x17 # CHECK: popl %ds 0x66 0x1f # CHECK: popl %es 0x66 0x07 # CHECK: pushfl 0x66 0x9c # CHECK: popfl 0x66 0x9d # CHECK: pushfl 0x66 0x9c # CHECK: popfl 0x66 0x9d # CHECK: setb %bl 0x0f 0x92 0xc3 # CHECK: setb %bl 0x0f 0x92 0xc3 # CHECK: setae %bl 0x0f 0x93 0xc3 # CHECK: setae %bl 0x0f 0x93 0xc3 # CHECK: setbe %bl 0x0f 0x96 0xc3 # CHECK: seta %bl 0x0f 0x97 0xc3 # CHECK: setp %bl 0x0f 0x9a 0xc3 # CHECK: setnp %bl 0x0f 0x9b 0xc3 # CHECK: setl %bl 0x0f 0x9c 0xc3 # CHECK: setge %bl 0x0f 0x9d 0xc3 # CHECK: setle %bl 0x0f 0x9e 0xc3 # CHECK: setg %bl 0x0f 0x9f 0xc3 # CHECK: setne %cl 0x0f 0x95 0xc1 # CHECK: setb %bl 0x0f 0x92 0xc3 # CHECK: setb %bl 0x0f 0x92 0xc3 # CHECK: lcalll $31438, $31438 0x66 0x9a 0xce 0x7a 0x00 0x00 0xce 0x7a # CHECK: lcalll $31438, $31438 0x66 0x9a 0xce 0x7a 0x00 0x00 0xce 0x7a # CHECK: ljmpl $31438, $31438 0x66 0xea 0xce 0x7a 0x00 0x00 0xce 0x7a # CHECK: ljmpl $31438, $31438 0x66 0xea 0xce 0x7a 0x00 0x00 0xce 0x7a # CHECK: lcallw $31438, $31438 0x9a 0xce 0x7a 0xce 0x7a # CHECK: lcallw $31438, $31438 0x9a 0xce 0x7a 0xce 0x7a # CHECK: ljmpw $31438, $31438 0xea 0xce 0x7a 0xce 0x7a # CHECK: ljmpw $31438, $31438 0xea 0xce 0x7a 0xce 0x7a # CHECK: lcallw $31438, $31438 0x9a 0xce 0x7a 0xce 0x7a # CHECK: lcallw $31438, $31438 0x9a 0xce 0x7a 0xce 0x7a # CHECK: ljmpw $31438, $31438 0xea 0xce 0x7a 0xce 0x7a # CHECK: ljmpw $31438, $31438 0xea 0xce 0x7a 0xce 0x7a # CHECK: calll 0x66 0xe8 0x00 0x00 0x00 0x00 # CHECK: callw 0xe8 0x00 0x00 # CHECK: incb %al 0xfe 0xc0 # CHECK: incw %ax 0x40 # CHECK: incl %eax 0x66 0x40 # CHECK: decb %al 0xfe 0xc8 # CHECK: decw %ax 0x48 # CHECK: decl %eax 0x66 0x48 # CHECK: pshufw $14, %mm4, %mm0 0x0f 0x70 0xc4 0x0e # CHECK: pshufw $90, %mm4, %mm0 0x0f 0x70 0xc4 0x5a # CHECK: aaa 0x37 # CHECK: aad $1 0xd5 0x01 # CHECK: aad 0xd5 0x0a # CHECK: aad 0xd5 0x0a # CHECK: aam $2 0xd4 0x02 # CHECK: aam 0xd4 0x0a # CHECK: aam 0xd4 0x0a # CHECK: aas 0x3f # CHECK: daa 0x27 # CHECK: das 0x2f # CHECK: retw $31438 0xc2 0xce 0x7a # CHECK: lretw $31438 0xca 0xce 0x7a # CHECK: retw $31438 0xc2 0xce 0x7a # CHECK: lretw $31438 0xca 0xce 0x7a # CHECK: retl $31438 0x66 0xc2 0xce 0x7a # CHECK: lretl $31438 0x66 0xca 0xce 0x7a # CHECK: bound 2(%eax), %bx 0x67 0x62 0x58 0x02 # CHECK: bound 4(%ebx), %ecx 0x67 0x66 0x62 0x4b 0x04 # CHECK: arpl %bx, %bx 0x63 0xdb # CHECK: arpl %bx, 6(%ecx) 0x67 0x63 0x59 0x06 # CHECK: lgdtw 4(%eax) 0x67 0x0f 0x01 0x50 0x04 # CHECK: lgdtw 4(%eax) 0x67 0x0f 0x01 0x50 0x04 # CHECK: lgdtl 4(%eax) 0x67 0x66 0x0f 0x01 0x50 0x04 # CHECK: lidtw 4(%eax) 0x67 0x0f 0x01 0x58 0x04 # CHECK: lidtw 4(%eax) 0x67 0x0f 0x01 0x58 0x04 # CHECK: lidtl 4(%eax) 0x67 0x66 0x0f 0x01 0x58 0x04 # CHECK: sgdtw 4(%eax) 0x67 0x0f 0x01 0x40 0x04 # CHECK: sgdtw 4(%eax) 0x67 0x0f 0x01 0x40 0x04 # CHECK: sgdtl 4(%eax) 0x67 0x66 0x0f 0x01 0x40 0x04 # CHECK: sidtw 4(%eax) 0x67 0x0f 0x01 0x48 0x04 # CHECK: sidtw 4(%eax) 0x67 0x0f 0x01 0x48 0x04 # CHECK: sidtl 4(%eax) 0x67 0x66 0x0f 0x01 0x48 0x04 # CHECK: fcompi %st(2) 0xdf 0xf2 # CHECK: fcompi %st(2) 0xdf 0xf2 # CHECK: fcompi %st(1) 0xdf 0xf1 # CHECK: fucompi %st(2) 0xdf 0xea # CHECK: fucompi %st(2) 0xdf 0xea # CHECK: fucompi %st(1) 0xdf 0xe9 # CHECK: fldcw 32493 0xd9 0x2e 0xed 0x7e # CHECK: fldcw 32493 0xd9 0x2e 0xed 0x7e # CHECK: fnstcw 32493 0xd9 0x3e 0xed 0x7e # CHECK: fnstcw 32493 0xd9 0x3e 0xed 0x7e # CHECK: wait 0x9b # CHECK: fnstcw 32493 0xd9 0x3e 0xed 0x7e # CHECK: wait 0x9b # CHECK: fnstcw 32493 0xd9 0x3e 0xed 0x7e # CHECK: fnstsw 32493 0xdd 0x3e 0xed 0x7e # CHECK: fnstsw 32493 0xdd 0x3e 0xed 0x7e # CHECK: wait 0x9b # CHECK: fnstsw 32493 0xdd 0x3e 0xed 0x7e # CHECK: wait 0x9b # CHECK: fnstsw 32493 0xdd 0x3e 0xed 0x7e # CHECK: verr 32493 0x0f 0x00 0x26 0xed 0x7e # CHECK: verr 32493 0x0f 0x00 0x26 0xed 0x7e # CHECK: wait 0x9b # CHECK: fnclex 0xdb 0xe2 # CHECK: fnclex 0xdb 0xe2 # CHECK: ud2 0x0f 0x0b # CHECK: ud2 0x0f 0x0b # CHECK: ud2b 0x0f 0xb9 # CHECK: loope 0xe1 0x00 # CHECK: loopne 0xe0 0x00 # CHECK: outsb 0x6e # CHECK: outsw 0x6f # CHECK: outsl 0x66 0x6f # CHECK: insb 0x6c # CHECK: insw 0x6d # CHECK: insl 0x66 0x6d # CHECK: movsb 0xa4 # CHECK: movsw 0xa5 # CHECK: movsl 0x66 0xa5 # CHECK: lodsb 0xac # CHECK: lodsw 0xad # CHECK: lodsl 0x66 0xad # CHECK: stosb 0xaa # CHECK: stosw 0xab # CHECK: stosl 0x66 0xab # CHECK: strw %ax 0x0f 0x00 0xc8 # CHECK: strl %eax 0x66 0x0f 0x00 0xc8 # CHECK: fsubp %st(1) 0xde 0xe1 # CHECK: fsubp %st(2) 0xde 0xe2 # CHECKX: nop 0x66 0x90 # CHECKX: nop 0x90 # CHECK: xchgl %ecx, %eax 0x66 0x91 # CHECK: xchgl %ecx, %eax 0x66 0x91 # CHECK: retw 0xc3 # CHECK: retl 0x66 0xc3 # CHECK: lretw 0xcb # CHECK: lretl 0x66 0xcb # CHECK: callw -1 0xe8 0xff 0xff