brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.4 KiB · 1c3ff69 Raw
91 lines · plain
1// RUN: llvm-mc -triple i386-apple-darwin10 %s 2>&1 | FileCheck %s2 3.macro abc a b:vararg4.globl "\a, \b"5.endm6 7// CHECK: .globl "zed0, zed1, zed2"8abc zed0, zed1, zed29 10.purgem abc11 12.macro ifcc arg:vararg13.if cc14            \arg15.endif16.endm17 18.macro ifcc2 arg0 arg1:vararg19.if cc20            movl \arg0, \arg121.endif22.endm23 24.macro ifcc3 arg0, arg1:vararg25.if cc26            movl \arg0, \arg127.endif28.endm29 30.macro ifcc4 arg0, arg1:vararg31.if cc32            movl \arg1, \arg033.endif34.endm35 36.text37 38// CHECK: movl %esp, %ebp39// CHECK: subl $0, %esp40// CHECK: movl %eax, %ebx41// CHECK: movl %ecx, %ebx42// CHECK: movl %ecx, %eax43// CHECK: movl %eax, %ecx44// CHECK: movl %ecx, %eax45// CHECK: movl %eax, %ecx46.set cc,147  ifcc  movl    %esp, %ebp48        subl $0, %esp49 50  ifcc2 %eax, %ebx51  ifcc2 %ecx, %ebx52  ifcc3 %ecx, %eax53  ifcc3 %eax, %ecx54  ifcc4 %eax, %ecx  ## test55  ifcc4 %ecx, %eax ## test56 57// CHECK-NOT: movl58// CHECK: subl $1, %esp59.set cc,060  ifcc  movl,    %esp, %ebp61        subl $1, %esp62 63.macro abc arg:vararg=nop64  \arg65.endm66 67.macro abcd arg0=%eax, arg1:vararg=%ebx68  movl \arg0, \arg169.endm70 71.text72 73// CHECK: nop74  abc75// CHECK: movl %eax, %ebx76  abcd ,77 78.macro .make_macro start, end, name, body:vararg79\start \name80\body81\end82.endmacro83 84.make_macro .macro,.endmacro,.mybyte,.byte $0, $2, $185 86.data87// CHECK: .byte 1088// CHECK: .byte 1289// CHECK: .byte 1190.mybyte 10,11,1291