60 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
			
		
		
	
	
			60 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
| // 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
 |