Rafael Espindola | 1134ab23 | 2011-06-05 02:43:45 +0000 | [diff] [blame] | 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 | |
Preston Gurd | 242ed315 | 2012-09-19 20:29:04 +0000 | [diff] [blame] | 7 | .macro GET_DEFAULT var, re2g=%ebx, re3g=%ecx |
| 8 | movl 2(\re2g, \re3g, 2), \var |
| 9 | .endm |
Rafael Espindola | 1134ab23 | 2011-06-05 02:43:45 +0000 | [diff] [blame] | 10 | |
Preston Gurd | 242ed315 | 2012-09-19 20:29:04 +0000 | [diff] [blame] | 11 | GET is_sse, %eax |
| 12 | // CHECK: movl is_sse@GOTOFF(%ebx), %eax |
Rafael Espindola | 1134ab23 | 2011-06-05 02:43:45 +0000 | [diff] [blame] | 13 | |
Preston Gurd | 242ed315 | 2012-09-19 20:29:04 +0000 | [diff] [blame] | 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 |
Jim Grosbach | 2c8e0ac | 2012-03-17 00:11:42 +0000 | [diff] [blame] | 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 |
Jim Grosbach | 1e1d68f | 2012-04-16 21:18:49 +0000 | [diff] [blame] | 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 |
Jim Grosbach | 20666162 | 2012-07-30 22:44:17 +0000 | [diff] [blame] | 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: |