summaryrefslogtreecommitdiffstats
path: root/llvm/test/MC/AsmParser
diff options
context:
space:
mode:
authorStepan Dyatkovskiy <stpworld@narod.ru>2014-04-23 06:56:28 +0000
committerStepan Dyatkovskiy <stpworld@narod.ru>2014-04-23 06:56:28 +0000
commitafc364bd51cb6cd23064fee1f6133801706e3245 (patch)
treea212d9c78e955d09366dc0f4b7e7eeecbbfec7c4 /llvm/test/MC/AsmParser
parentae5c1070baa92169d19d503300b3fb6e220bdf57 (diff)
downloadbcm5719-llvm-afc364bd51cb6cd23064fee1f6133801706e3245.tar.gz
bcm5719-llvm-afc364bd51cb6cd23064fee1f6133801706e3245.zip
Integrated assbemler, macros: added 'vararg' argument qualifier support.
Note, currently we have no 'vararg' support for darwin macros. llvm-svn: 206951
Diffstat (limited to 'llvm/test/MC/AsmParser')
-rw-r--r--llvm/test/MC/AsmParser/macros-darwin-vararg.s8
-rw-r--r--llvm/test/MC/AsmParser/vararg-default-value.s15
-rw-r--r--llvm/test/MC/AsmParser/vararg.s41
3 files changed, 64 insertions, 0 deletions
diff --git a/llvm/test/MC/AsmParser/macros-darwin-vararg.s b/llvm/test/MC/AsmParser/macros-darwin-vararg.s
new file mode 100644
index 00000000000..a650c0871d2
--- /dev/null
+++ b/llvm/test/MC/AsmParser/macros-darwin-vararg.s
@@ -0,0 +1,8 @@
+// RUN: not llvm-mc -triple i386-apple-darwin10 %s 2>&1 | FileCheck %s
+
+// CHECK: error: vararg is not a valid parameter qualifier for 'arg' in macro 'abc'
+// CHECK: .macro abc arg:vararg
+
+.macro abc arg:vararg
+ \arg
+.endm
diff --git a/llvm/test/MC/AsmParser/vararg-default-value.s b/llvm/test/MC/AsmParser/vararg-default-value.s
new file mode 100644
index 00000000000..77cd1e8817e
--- /dev/null
+++ b/llvm/test/MC/AsmParser/vararg-default-value.s
@@ -0,0 +1,15 @@
+// RUN: llvm-mc -triple x86_64-linux-gnu %s | FileCheck %s
+.macro abc arg:vararg=nop
+ \arg
+.endm
+
+.macro abcd arg0=%eax arg1:vararg=%ebx
+ movl \arg0, \arg1
+.endm
+
+.text
+
+// CHECK: nop
+ abc
+// CHECK: movl %eax, %ebx
+ abcd ,
diff --git a/llvm/test/MC/AsmParser/vararg.s b/llvm/test/MC/AsmParser/vararg.s
new file mode 100644
index 00000000000..b27668ea337
--- /dev/null
+++ b/llvm/test/MC/AsmParser/vararg.s
@@ -0,0 +1,41 @@
+// RUN: llvm-mc -triple x86_64-linux-gnu %s | FileCheck %s
+.macro ifcc arg:vararg
+.if cc
+ \arg
+.endif
+.endm
+
+.macro ifcc2 arg0 arg1:vararg
+.if cc
+ movl \arg0, \arg1
+.endif
+.endm
+
+.macro ifcc3 arg0, arg1:vararg
+.if cc
+ movl \arg0, \arg1
+.endif
+.endm
+
+.text
+
+// CHECK: movl %esp, %ebp
+// CHECK: subl $0, %esp
+// CHECK: movl %eax, %ebx
+// CHECK: movl %ecx, %ebx
+// CHECK: movl %ecx, %eax
+// CHECK: movl %eax, %ecx
+.set cc,1
+ ifcc movl %esp, %ebp
+ subl $0, %esp
+
+ ifcc2 %eax %ebx
+ ifcc2 %ecx, %ebx
+ ifcc3 %ecx %eax
+ ifcc3 %eax, %ecx
+
+// CHECK-NOT movl
+// CHECK: subl $1, %esp
+.set cc,0
+ ifcc movl %esp, %ebp
+ subl $1, %esp
OpenPOWER on IntegriCloud