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