| # 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: movw %cs, (%eax) |
| 0x67 0x66 0x8c 0x08 |
| |
| # CHECK: movw %cs, (%eax) |
| 0x67 0x8c 0x08 |
| |
| # CHECK: movl %eax, %cs |
| 0x66 0x8e 0xc8 |
| |
| # CHECK: movw (%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 %ecx, -24(%ebp) |
| 0x67 0x66 0x85 0x4d 0xe8 |
| |
| # CHECK: testl %ecx, -24(%ebp) |
| 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: salc |
| 0xd6 |
| |
| # 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 %bx, 2(%eax) |
| 0x67 0x62 0x58 0x02 |
| |
| # CHECK: bound %ecx, 4(%ebx) |
| 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 |
| |
| # CHECK: wbnoinvd |
| 0xf3 0x0f 0x09 |
| |
| # CHECK: umonitor %ax |
| 0xf3 0x0f 0xae 0xf0 |
| |
| # CHECK: umonitor %eax |
| 0x67 0xf3 0x0f 0xae 0xf0 |
| |
| #CHECK: movdir64b (%esi), %eax |
| 0x67 0x66 0x0f 0x38 0xf8 0x06 |
| |
| #CHECK: movdir64b (%si), %ax |
| 0x66 0x0f 0x38 0xf8 0x04 |