diff options
author | Stepan Dyatkovskiy <stpworld@narod.ru> | 2014-04-23 06:56:28 +0000 |
---|---|---|
committer | Stepan Dyatkovskiy <stpworld@narod.ru> | 2014-04-23 06:56:28 +0000 |
commit | afc364bd51cb6cd23064fee1f6133801706e3245 (patch) | |
tree | a212d9c78e955d09366dc0f4b7e7eeecbbfec7c4 /llvm/test/MC/AsmParser | |
parent | ae5c1070baa92169d19d503300b3fb6e220bdf57 (diff) | |
download | bcm5719-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.s | 8 | ||||
-rw-r--r-- | llvm/test/MC/AsmParser/vararg-default-value.s | 15 | ||||
-rw-r--r-- | llvm/test/MC/AsmParser/vararg.s | 41 |
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 |