[llvm-readobj] - Simplify stack-sizes.test test case.
[llvm-complete.git] / test / MC / X86 / intel-syntax-error.s
blob2ccfc490463620c3a0c0219375e69cb5fc90b35f
1 // RUN: not llvm-mc -triple i686-unknown-unknown -x86-asm-syntax=att %s -o /dev/null 2>&1 | FileCheck %s
3 // This tests weird forms of Intel and AT&T syntax that gas accepts that we
4 // don't. The [no]prefix operand of the syntax directive indicates whether
5 // registers need a '%' prefix.
7 .intel_syntax prefix
8 // CHECK: error: '.intel_syntax prefix' is not supported: registers must not have a '%' prefix in .intel_syntax
9 _test2:
10 mov DWORD PTR [%esp - 4], 257
11 .att_syntax noprefix
12 // CHECK: error: '.att_syntax noprefix' is not supported: registers must have a '%' prefix in .att_syntax
13 movl $257, -4(esp)
16 .intel_syntax noprefix
18 .global arr
19 .global i
20 .set FOO, 2
22 //CHECK: error: cannot use more than one symbol in memory operand
23 mov eax, DWORD PTR arr[i]
24 //CHECK: error: rip can only be used as a base register
25 .code64
26 mov rax, rip
27 //CHECK: error: invalid base+index expression
28 mov rbx, [rax+rip]
29 //CHECK: error: scale factor in address must be 1, 2, 4 or 8
30 lea RDX, [unknown_number * RAX + RBX + _foo]
31 //CHECK: error: BaseReg/IndexReg already set!
32 lea RDX, [4 * RAX + 27 * RBX + _pat]
33 //CHECK: error: unexpected bracket encountered
34 lea RDX, [[arr]
35 //CHECK: error: unexpected bracket encountered
36 lea RDX, [arr[]
38 .intel_syntax
40 // CHECK: error: invalid operand for instruction
41 punpcklbw mm0, qword ptr [rsp]
42 // CHECK: error: invalid operand for instruction
43 punpcklwd mm0, word ptr [rsp]
44 // CHECK: error: invalid operand for instruction
45 punpckldq mm0, qword ptr [rsp]
47 // CHECK: error: invalid 16-bit base register
48 lea bx, [ax]
50 // CHECK: invalid base+index expression
51 lea eax, [eax+esp*1]
53 // CHECK: 16-bit addresses cannot have a scale
54 lea ax, [bx+si*1]