1 // RUN: llvm-mc -triple x86_64-apple-darwin10 %s | FileCheck %s 2 3 .macro GET var,re2g 4 movl \var@GOTOFF(%ebx),\re2g 5 .endm 6 7 .macro GET_DEFAULT var, re2g=%ebx, re3g=%ecx 8 movl 2(\re2g, \re3g, 2), \var 9 .endm 10 11 GET is_sse, %eax 12 // CHECK: movl is_sse@GOTOFF(%ebx), %eax 13 14 GET_DEFAULT %ebx, , %edx 15 // CHECK: movl 2(%ebx,%edx,2), %ebx 16 17 GET_DEFAULT %ebx, %edx 18 // CHECK: movl 2(%edx,%ecx,2), %ebx 19 20 .macro bar 21 .long $n 22 .endm 23 24 bar 1, 2, 3 25 bar 26 27 // CHECK: .long 3 28 // CHECK: .long 0 29 30 31 .macro top 32 middle _$0, $1 33 .endm 34 .macro middle 35 $0: 36 .if $n > 1 37 bottom $1 38 .endif 39 .endm 40 .macro bottom 41 .set fred, $0 42 .endm 43 44 .text 45 46 top foo 47 top bar, 42 48 49 // CHECK: _foo: 50 // CHECK-NOT: fred 51 // CHECK: _bar 52 // CHECK-NEXT: fred = 42 53 54 55 .macro foo 56 foo_$0_$1_$2_$3: 57 nop 58 .endm 59 60 foo 1, 2, 3, 4 61 foo 1, , 3, 4 62 63 // CHECK: foo_1_2_3_4: 64 // CHECK: foo_1__3_4: 65