1// RUN: not llvm-mc -triple i686-unknown-unknown %s -o /dev/null 2>&1 | FileCheck %s 2 3.intel_syntax 4 5// Basic case of ambiguity for inc. 6 7inc [eax] 8// CHECK: error: ambiguous operand size for instruction 'inc' 9inc dword ptr [eax] 10inc word ptr [eax] 11inc byte ptr [eax] 12// CHECK-NOT: error: 13 14// Other ambiguous instructions. Anything that doesn't take a register, 15// basically. 16 17dec [eax] 18// CHECK: error: ambiguous operand size for instruction 'dec' 19mov [eax], 1 20// CHECK: error: ambiguous operand size for instruction 'mov' 21and [eax], 0 22// CHECK: error: ambiguous operand size for instruction 'and' 23or [eax], 1 24// CHECK: error: ambiguous operand size for instruction 'or' 25add [eax], 1 26// CHECK: error: ambiguous operand size for instruction 'add' 27sub [eax], 1 28// CHECK: error: ambiguous operand size for instruction 'sub' 29 30// gas assumes these instructions are pointer-sized by default, and we follow 31// suit. 32push [eax] 33call [eax] 34jmp [eax] 35// CHECK-NOT: error: 36 37add byte ptr [eax], eax 38// CHECK: error: invalid operand for instruction 39 40add byte ptr [eax], eax 41// CHECK: error: invalid operand for instruction 42 43add rax, 3 44// CHECK: error: register %rax is only available in 64-bit mode 45 46fadd "?half@?0??bar@@YAXXZ@4NA" 47// CHECK: error: ambiguous operand size for instruction 'fadd' 48 49// Instruction line with PTR inside check that they don't accept register as memory. 50 51// CHECK: error: expected memory operand after 'ptr', found register operand instead 52// CHECK: andps xmm1, xmmword ptr xmm1 53andps xmm1, xmmword ptr xmm1 54// CHECK: error: expected memory operand after 'ptr', found register operand instead 55// CHECK: andps xmmword ptr xmm1, xmm1 56andps xmmword ptr xmm1, xmm1 57// CHECK: error: expected memory operand after 'ptr', found register operand instead 58// CHECK: mov dword ptr eax, ebx 59mov dword ptr eax, ebx 60