Heuristic: If the number of operands in the alias are more than the number of
[llvm/stm8.git] / test / MC / MachO / tls.s
blob44b61beeb489cfb10680163fceebab38e3f51c22
1 // RUN: llvm-mc -triple x86_64-apple-darwin %s -filetype=obj -o - | macho-dump --dump-section-data | FileCheck %s
3 .section __TEXT,__text,regular,pure_instructions
4 .section __DATA,__thread_data,thread_local_regular
5 .globl _c$tlv$init
6 .align 2
7 _c$tlv$init:
8 .long 4
10 .section __DATA,__thread_vars,thread_local_variables
11 .globl _c
12 _c:
13 .quad ___tlv_bootstrap
14 .quad 0
15 .quad _c$tlv$init
17 .section __DATA,__thread_data,thread_local_regular
18 .globl _d$tlv$init
19 .align 2
20 _d$tlv$init:
21 .long 5
23 .section __DATA,__thread_vars,thread_local_variables
24 .globl _d
25 _d:
26 .quad ___tlv_bootstrap
27 .quad 0
28 .quad _d$tlv$init
30 .tbss _a$tlv$init, 4, 2
32 .globl _a
33 _a:
34 .quad ___tlv_bootstrap
35 .quad 0
36 .quad _a$tlv$init
38 .tbss _b$tlv$init, 4, 2
40 .globl _b
41 _b:
42 .quad ___tlv_bootstrap
43 .quad 0
44 .quad _b$tlv$init
46 .subsections_via_symbols
48 // CHECK: ('cputype', 16777223)
49 // CHECK: ('cpusubtype', 3)
50 // CHECK: ('filetype', 1)
51 // CHECK: ('num_load_commands', 3)
52 // CHECK: ('load_commands_size', 496)
53 // CHECK: ('flag', 8192)
54 // CHECK: ('reserved', 0)
55 // CHECK: ('load_commands', [
56 // CHECK: # Load Command 0
57 // CHECK: (('command', 25)
58 // CHECK: ('size', 392)
59 // CHECK: ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
60 // CHECK: ('vm_addr', 0)
61 // CHECK: ('vm_size', 112)
62 // CHECK: ('file_offset', 528)
63 // CHECK: ('file_size', 104)
64 // CHECK: ('maxprot', 7)
65 // CHECK: ('initprot', 7)
66 // CHECK: ('num_sections', 4)
67 // CHECK: ('flags', 0)
68 // CHECK: ('sections', [
69 // CHECK: # Section 0
70 // CHECK: (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
71 // CHECK: ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
72 // CHECK: ('address', 0)
73 // CHECK: ('size', 0)
74 // CHECK: ('offset', 528)
75 // CHECK: ('alignment', 0)
76 // CHECK: ('reloc_offset', 0)
77 // CHECK: ('num_reloc', 0)
78 // CHECK: ('flags', 0x80000000)
79 // CHECK: ('reserved1', 0)
80 // CHECK: ('reserved2', 0)
81 // CHECK: ('reserved3', 0)
82 // CHECK: ),
83 // CHECK: ('_relocations', [
84 // CHECK: ])
85 // CHECK: ('_section_data', '')
86 // CHECK: # Section 1
87 // CHECK: (('section_name', '__thread_data\x00\x00\x00')
88 // CHECK: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
89 // CHECK: ('address', 0)
90 // CHECK: ('size', 8)
91 // CHECK: ('offset', 528)
92 // CHECK: ('alignment', 2)
93 // CHECK: ('reloc_offset', 0)
94 // CHECK: ('num_reloc', 0)
95 // CHECK: ('flags', 0x11)
96 // CHECK: ('reserved1', 0)
97 // CHECK: ('reserved2', 0)
98 // CHECK: ('reserved3', 0)
99 // CHECK: ),
100 // CHECK: ('_relocations', [
101 // CHECK: ])
102 // CHECK: ('_section_data', '04000000 05000000')
103 // CHECK: # Section 2
104 // CHECK: (('section_name', '__thread_vars\x00\x00\x00')
105 // CHECK: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
106 // CHECK: ('address', 8)
107 // CHECK: ('size', 96)
108 // CHECK: ('offset', 536)
109 // CHECK: ('alignment', 0)
110 // CHECK: ('reloc_offset', 632)
111 // CHECK: ('num_reloc', 8)
112 // CHECK: ('flags', 0x13)
113 // CHECK: ('reserved1', 0)
114 // CHECK: ('reserved2', 0)
115 // CHECK: ('reserved3', 0)
116 // CHECK: ),
117 // CHECK: ('_relocations', [
118 // CHECK: # Relocation 0
119 // CHECK: (('word-0', 0x58),
120 // CHECK: ('word-1', 0xe000001)),
121 // CHECK: # Relocation 1
122 // CHECK: (('word-0', 0x48),
123 // CHECK: ('word-1', 0xe000008)),
124 // CHECK: # Relocation 2
125 // CHECK: (('word-0', 0x40),
126 // CHECK: ('word-1', 0xe000000)),
127 // CHECK: # Relocation 3
128 // CHECK: (('word-0', 0x30),
129 // CHECK: ('word-1', 0xe000008)),
130 // CHECK: # Relocation 4
131 // CHECK: (('word-0', 0x28),
132 // CHECK: ('word-1', 0xe000007)),
133 // CHECK: # Relocation 5
134 // CHECK: (('word-0', 0x18),
135 // CHECK: ('word-1', 0xe000008)),
136 // CHECK: # Relocation 6
137 // CHECK: (('word-0', 0x10),
138 // CHECK: ('word-1', 0xe000005)),
139 // CHECK: # Relocation 7
140 // CHECK: (('word-0', 0x0),
141 // CHECK: ('word-1', 0xe000008)),
142 // CHECK: ])
143 // CHECK: ('_section_data', '00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000')
144 // CHECK: # Section 3
145 // CHECK: (('section_name', '__thread_bss\x00\x00\x00\x00')
146 // CHECK: ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
147 // CHECK: ('address', 104)
148 // CHECK: ('size', 8)
149 // CHECK: ('offset', 0)
150 // CHECK: ('alignment', 2)
151 // CHECK: ('reloc_offset', 0)
152 // CHECK: ('num_reloc', 0)
153 // CHECK: ('flags', 0x12)
154 // CHECK: ('reserved1', 0)
155 // CHECK: ('reserved2', 0)
156 // CHECK: ('reserved3', 0)
157 // CHECK: ),
158 // CHECK: ('_relocations', [
159 // CHECK: ])
160 // CHECK: ('_section_data', 'cffaedfe 07000001')
161 // CHECK: ])
162 // CHECK: ),
163 // CHECK: # Load Command 1
164 // CHECK: (('command', 2)
165 // CHECK: ('size', 24)
166 // CHECK: ('symoff', 696)
167 // CHECK: ('nsyms', 9)
168 // CHECK: ('stroff', 840)
169 // CHECK: ('strsize', 80)
170 // CHECK: ('_string_data', '\x00_c$tlv$init\x00_c\x00___tlv_bootstrap\x00_d$tlv$init\x00_d\x00_a\x00_b\x00_a$tlv$init\x00_b$tlv$init\x00\x00\x00')
171 // CHECK: ('_symbols', [
172 // CHECK: # Symbol 0
173 // CHECK: (('n_strx', 54)
174 // CHECK: ('n_type', 0xe)
175 // CHECK: ('n_sect', 4)
176 // CHECK: ('n_desc', 0)
177 // CHECK: ('n_value', 104)
178 // CHECK: ('_string', '_a$tlv$init')
179 // CHECK: ),
180 // CHECK: # Symbol 1
181 // CHECK: (('n_strx', 66)
182 // CHECK: ('n_type', 0xe)
183 // CHECK: ('n_sect', 4)
184 // CHECK: ('n_desc', 0)
185 // CHECK: ('n_value', 108)
186 // CHECK: ('_string', '_b$tlv$init')
187 // CHECK: ),
188 // CHECK: # Symbol 2
189 // CHECK: (('n_strx', 48)
190 // CHECK: ('n_type', 0xf)
191 // CHECK: ('n_sect', 3)
192 // CHECK: ('n_desc', 0)
193 // CHECK: ('n_value', 56)
194 // CHECK: ('_string', '_a')
195 // CHECK: ),
196 // CHECK: # Symbol 3
197 // CHECK: (('n_strx', 51)
198 // CHECK: ('n_type', 0xf)
199 // CHECK: ('n_sect', 3)
200 // CHECK: ('n_desc', 0)
201 // CHECK: ('n_value', 80)
202 // CHECK: ('_string', '_b')
203 // CHECK: ),
204 // CHECK: # Symbol 4
205 // CHECK: (('n_strx', 13)
206 // CHECK: ('n_type', 0xf)
207 // CHECK: ('n_sect', 3)
208 // CHECK: ('n_desc', 0)
209 // CHECK: ('n_value', 8)
210 // CHECK: ('_string', '_c')
211 // CHECK: ),
212 // CHECK: # Symbol 5
213 // CHECK: (('n_strx', 1)
214 // CHECK: ('n_type', 0xf)
215 // CHECK: ('n_sect', 2)
216 // CHECK: ('n_desc', 0)
217 // CHECK: ('n_value', 0)
218 // CHECK: ('_string', '_c$tlv$init')
219 // CHECK: ),
220 // CHECK: # Symbol 6
221 // CHECK: (('n_strx', 45)
222 // CHECK: ('n_type', 0xf)
223 // CHECK: ('n_sect', 3)
224 // CHECK: ('n_desc', 0)
225 // CHECK: ('n_value', 32)
226 // CHECK: ('_string', '_d')
227 // CHECK: ),
228 // CHECK: # Symbol 7
229 // CHECK: (('n_strx', 33)
230 // CHECK: ('n_type', 0xf)
231 // CHECK: ('n_sect', 2)
232 // CHECK: ('n_desc', 0)
233 // CHECK: ('n_value', 4)
234 // CHECK: ('_string', '_d$tlv$init')
235 // CHECK: ),
236 // CHECK: # Symbol 8
237 // CHECK: (('n_strx', 16)
238 // CHECK: ('n_type', 0x1)
239 // CHECK: ('n_sect', 0)
240 // CHECK: ('n_desc', 0)
241 // CHECK: ('n_value', 0)
242 // CHECK: ('_string', '___tlv_bootstrap')
243 // CHECK: ),
244 // CHECK: ])
245 // CHECK: ),
246 // CHECK: # Load Command 2
247 // CHECK: (('command', 11)
248 // CHECK: ('size', 80)
249 // CHECK: ('ilocalsym', 0)
250 // CHECK: ('nlocalsym', 2)
251 // CHECK: ('iextdefsym', 2)
252 // CHECK: ('nextdefsym', 6)
253 // CHECK: ('iundefsym', 8)
254 // CHECK: ('nundefsym', 1)
255 // CHECK: ('tocoff', 0)
256 // CHECK: ('ntoc', 0)
257 // CHECK: ('modtaboff', 0)
258 // CHECK: ('nmodtab', 0)
259 // CHECK: ('extrefsymoff', 0)
260 // CHECK: ('nextrefsyms', 0)
261 // CHECK: ('indirectsymoff', 0)
262 // CHECK: ('nindirectsyms', 0)
263 // CHECK: ('extreloff', 0)
264 // CHECK: ('nextrel', 0)
265 // CHECK: ('locreloff', 0)
266 // CHECK: ('nlocrel', 0)
267 // CHECK: ('_indirect_symbols', [
268 // CHECK: ])
269 // CHECK: ),
270 // CHECK: ])