| // RUN: not llvm-mc -triple i686-unknown-unknown %s -o /dev/null 2>&1 | FileCheck %s |
| |
| .intel_syntax |
| |
| // Basic case of ambiguity for inc. |
| |
| inc [eax] |
| // CHECK: error: ambiguous operand size for instruction 'inc' |
| inc dword ptr [eax] |
| inc word ptr [eax] |
| inc byte ptr [eax] |
| // CHECK-NOT: error: |
| |
| // Other ambiguous instructions. Anything that doesn't take a register, |
| // basically. |
| |
| dec [eax] |
| // CHECK: error: ambiguous operand size for instruction 'dec' |
| mov [eax], 1 |
| // CHECK: error: ambiguous operand size for instruction 'mov' |
| and [eax], 0 |
| // CHECK: error: ambiguous operand size for instruction 'and' |
| or [eax], 1 |
| // CHECK: error: ambiguous operand size for instruction 'or' |
| add [eax], 1 |
| // CHECK: error: ambiguous operand size for instruction 'add' |
| sub [eax], 1 |
| // CHECK: error: ambiguous operand size for instruction 'sub' |
| |
| // gas assumes these instructions are pointer-sized by default, and we follow |
| // suit. |
| push [eax] |
| call [eax] |
| jmp [eax] |
| // CHECK-NOT: error: |
| |
| add byte ptr [eax], eax |
| // CHECK: error: invalid operand for instruction |
| |
| add byte ptr [eax], eax |
| // CHECK: error: invalid operand for instruction |
| |
| add rax, 3 |
| // CHECK: error: register %rax is only available in 64-bit mode |
| |
| fadd "?half@?0??bar@@YAXXZ@4NA" |
| // CHECK: error: ambiguous operand size for instruction 'fadd' |
| |
| // Instruction line with PTR inside check that they don't accept register as memory. |
| |
| // CHECK: error: expected memory operand after 'ptr', found register operand instead |
| // CHECK: andps xmm1, xmmword ptr xmm1 |
| andps xmm1, xmmword ptr xmm1 |
| // CHECK: error: expected memory operand after 'ptr', found register operand instead |
| // CHECK: andps xmmword ptr xmm1, xmm1 |
| andps xmmword ptr xmm1, xmm1 |
| // CHECK: error: expected memory operand after 'ptr', found register operand instead |
| // CHECK: mov dword ptr eax, ebx |
| mov dword ptr eax, ebx |