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