summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
Diffstat (limited to 'llvm')
-rw-r--r--llvm/test/MC/X86/intel-syntax.s51
-rw-r--r--llvm/test/MC/X86/intel-syntax2.s32
2 files changed, 82 insertions, 1 deletions
diff --git a/llvm/test/MC/X86/intel-syntax.s b/llvm/test/MC/X86/intel-syntax.s
index a8172fc6798..d474481e522 100644
--- a/llvm/test/MC/X86/intel-syntax.s
+++ b/llvm/test/MC/X86/intel-syntax.s
@@ -6,7 +6,56 @@ _test:
xor EAX, EAX
ret
-_main:
+.set number, 8
+.global _foo
+
+.text
+ .global main
+main:
+
+// CHECK: leaq _foo(%rbx,%rax,0), %rdx
+ lea RDX, [number * RAX + RBX + _foo]
+// CHECK: leaq _foo(%rbx,%rax,8), %rdx
+ lea RDX, [8 * RAX + RBX + _foo]
+
+// CHECK: leaq 8(%rbx,%rax,0), %rdx
+ lea RDX, [_foo + number * RAX + RBX]
+// CHECK: leaq _foo(%rbx,%rax,8), %rdx
+ lea RDX, [_foo + 8 * RAX + RBX]
+
+// CHECK: leaq 8(%rcx,%rax,8), %rdx
+ lea RDX, [8 + RAX * 8 + RCX]
+
+// CHECK: leaq 8+8(%rcx,%rax,0), %rdx
+ lea RDX, [8 + number * RAX + RCX]
+// CHECK: leaq 8(%rcx,%rax,8), %rdx
+ lea RDX, [number + 8 * RAX + RCX]
+
+// CHECK: leaq _foo(,%rax,8), %rdx
+ lea RDX, [_foo + RAX * 8]
+
+// CHECK: leaq _foo(%rbx,%rax,8), %rdx
+ lea RDX, [_foo + RAX * 8 + RBX]
+
+// CHECK: leaq 8(%rax), %rdx
+ lea RDX, [RAX - number]
+// CHECK: leaq -8(%rax), %rdx
+ lea RDX, [RAX - 8]
+
+// CHECK: leaq _foo(%rax), %rdx
+ lea RDX, [RAX + _foo]
+// CHECK: leaq 8(%rax), %rdx
+ lea RDX, [RAX + number]
+// CHECK: leaq 8(%rax), %rdx
+ lea RDX, [RAX + 8]
+
+// CHECK: leaq _foo(%rax), %rdx
+ lea RDX, [_foo + RAX]
+// CHECK: leaq 8(%rax), %rdx
+ lea RDX, [number + RAX]
+// CHECK: leaq 8(%rax), %rdx
+ lea RDX, [8 + RAX]
+
// CHECK: movl $257, -4(%rsp)
mov DWORD PTR [RSP - 4], 257
// CHECK: movl $258, 4(%rsp)
diff --git a/llvm/test/MC/X86/intel-syntax2.s b/llvm/test/MC/X86/intel-syntax2.s
new file mode 100644
index 00000000000..78b01794cb3
--- /dev/null
+++ b/llvm/test/MC/X86/intel-syntax2.s
@@ -0,0 +1,32 @@
+// RUN: not llvm-mc -triple x86_64-unknown-unknown -x86-asm-syntax=intel %s 2> %t.err
+// RUN: FileCheck --check-prefix=CHECK-STDERR < %t.err %s
+
+_test:
+// CHECK-LABEL: _test:
+// CHECK: xorl %eax, %eax
+
+ xor EAX, EAX
+ ret
+
+.set number, 8
+.global _foo
+
+.text
+ .global main
+main:
+
+// CHECK-STDERR: error: unknown token in expression
+ lea RDX, [RAX * number + RBX + _foo]
+
+// CHECK-STDERR: error: unknown token in expression
+ lea RDX, [_foo + RAX * number + RBX]
+
+// CHECK-STDERR: error: unknown token in expression
+ lea RDX, [number + RAX * number + RCX]
+
+// CHECK-STDERR: error: unknown token in expression
+ lea RDX, [_foo + RAX * number]
+
+// CHECK-STDERR: error: unknown token in expression
+ lea RDX, [_foo + RAX * number + RBX]
+
OpenPOWER on IntegriCloud