| // RUN: llvm-mc -triple x86_64-apple-darwin10 %s | FileCheck %s |
| |
| .macro GET var,re2g |
| movl \var@GOTOFF(%ebx),\re2g |
| .endm |
| |
| .macro GET_DEFAULT var, re2g=%ebx, re3g=%ecx |
| movl 2(\re2g, \re3g, 2), \var |
| .endm |
| |
| GET is_sse, %eax |
| // CHECK: movl is_sse@GOTOFF(%ebx), %eax |
| |
| GET_DEFAULT %ebx, , %edx |
| // CHECK: movl 2(%ebx,%edx,2), %ebx |
| |
| GET_DEFAULT %ebx, %edx |
| // CHECK: movl 2(%edx,%ecx,2), %ebx |
| |
| .macro bar |
| .long $n |
| .endm |
| |
| bar 1, 2, 3 |
| bar |
| |
| // CHECK: .long 3 |
| // CHECK: .long 0 |
| |
| |
| .macro top |
| middle _$0, $1 |
| .endm |
| .macro middle |
| $0: |
| .if $n > 1 |
| bottom $1 |
| .endif |
| .endm |
| .macro bottom |
| .set fred, $0 |
| .endm |
| |
| .text |
| |
| top foo |
| top bar, 42 |
| |
| // CHECK: _foo: |
| // CHECK-NOT: fred |
| // CHECK: _bar |
| // CHECK-NEXT: .set fred, 42 |
| |
| |
| .macro foo |
| foo_$0_$1_$2_$3: |
| nop |
| .endm |
| |
| foo 1, 2, 3, 4 |
| foo 1, , 3, 4 |
| |
| // CHECK: foo_1_2_3_4: |
| // CHECK: foo_1__3_4: |