xref: /llvm-project/llvm/test/MC/AsmParser/macro-arg.s (revision 195ba4572129befa25ca56439515d7cb91587c56)
1# RUN: llvm-mc -triple=x86_64 %s | FileCheck %s
2
3.macro empty, cond
4.endm
5empty ne
6
7# CHECK: .ascii "3 \003"
8.macro escape a
9.ascii "\a \\a"
10.endm
11escape 3
12
13.macro double first = -1, second = -1
14  .long \first
15  .long \second
16.endm
17
18# CHECK:      .long -1
19# CHECK-NEXT: .long -1
20double
21# CHECK-NEXT: .long -1
22# CHECK-NEXT: .long -1
23double ,
24# CHECK-NEXT: .long 1
25# CHECK-NEXT: .long -1
26double 1
27# CHECK:      .long 2
28# CHECK-NEXT: .long 3
29double 2, 3
30# CHECK:      .long -1
31# CHECK-NEXT: .long 4
32double , 4
33# CHECK:      .long 5
34# CHECK-NEXT: .long 6
35double 5, second = 6
36# CHECK:      .long 7
37# CHECK-NEXT: .long -1
38double first = 7
39# CHECK:      .long -1
40# CHECK-NEXT: .long 8
41double second = 8
42# CHECK:      .long 10
43# CHECK-NEXT: .long 9
44double second = 9, first = 10
45# CHECK:      .long second+11
46# CHECK-NEXT: .long -1
47double second + 11
48# CHECK:      .long -1
49# CHECK-NEXT: .long second+12
50double , second + 12
51# CHECK:      .long second
52# CHECK-NEXT: .long -1
53double second
54
55.macro mixed arg0 = 0, arg1 = 1 arg2 = 2, arg3 = 3
56  .long \arg0
57  .long \arg1
58  .long \arg2
59  .long \arg3
60.endm
61
62# CHECK:      .long 1
63# CHECK-NEXT: .long 2
64# CHECK-NEXT: .long 3
65# CHECK-NEXT: .long 3
66mixed 1, 2 3
67
68# CHECK:      .long 1
69# CHECK-NEXT: .long 2
70# CHECK-NEXT: .long 3
71# CHECK-NEXT: .long 3
72mixed 1 2, 3
73
74# CHECK:      .long 1
75# CHECK-NEXT: .long 2
76# CHECK-NEXT: .long 3
77# CHECK-NEXT: .long 4
78mixed 1 2, 3 4
79
80.macro ascii3 _a _b _c
81.ascii "\_a|\_b|\_c"
82.endm
83
84## 3 arguments.
85# CHECK: .ascii "a|b|c"
86ascii3 a, b, c
87# CHECK: .ascii "%1|%2|%3"
88ascii3 %1 %2 %3
89# CHECK: .ascii "1|2|3"
90ascii3 1, 2,3
91# CHECK: .ascii "1|2|3"
92ascii3 1,2 3
93# CHECK: .ascii "1|2|3"
94ascii3 1 2, 3
95# CHECK: .ascii "x-y|z|1"
96ascii3 x - y z 1
97
98## 2 arguments.
99# CHECK: .ascii "1|(2 3)|"
100ascii3 1, (2 3)
101# CHECK: .ascii "1|(2 3)|"
102ascii3 1 (2 3)
103