1 ; RUN: llc -verify-machineinstrs -mcpu=pwr4 -mattr=-altivec -mtriple powerpc-ibm-aix-xcoff \
2 ; RUN: -xcoff-traceback-table=false -data-sections=false -filetype=obj -o %t.o < %s
3 ; RUN: llvm-readobj --relocs --expand-relocs %t.o | FileCheck -D#NFA=2 --check-prefix=RELOC %s
4 ; RUN: llvm-readobj --syms %t.o | FileCheck -D#NFA=2 --check-prefix=SYM %s
5 ; RUN: llvm-objdump -D -r --symbol-description %t.o | FileCheck -D#NFA=2 --check-prefix=DIS %s
7 @const_ivar = constant i32 6, align 4
8 @GInit = global i32 1, align 4
9 @TGInit = thread_local global i32 1, align 4
10 ; @TIUninit is local-dynamic indeed
11 @TIUninit = internal thread_local global i32 0, align 4
13 ; Function Attrs: nofree norecurse nounwind willreturn writeonly
14 define void @storesTIUninit(i32 %Val) #0 {
16 store i32 %Val, ptr @TIUninit, align 4
20 ; Function Attrs: norecurse nounwind readonly willreturn
21 define i32 @loadsTGInit() #1 {
23 %0 = load i32, ptr @TGInit, align 4
24 %1 = load i32, ptr @GInit, align 4
25 %add = add nsw i32 %1, %0
30 ; RELOC-NEXT: Format: aixcoff-rs6000
31 ; RELOC-NEXT: Arch: powerpc
32 ; RELOC-NEXT: AddressSize: 32bit
33 ; RELOC-NEXT: Relocations [
34 ; RELOC-NEXT: Section (index: 1) .text {
35 ; RELOC-NEXT: Relocation {
36 ; RELOC-NEXT: Virtual Address: 0xE
37 ; RELOC-NEXT: Symbol: _$TLSML ([[#NFA+25]])
38 ; RELOC-NEXT: IsSigned: No
39 ; RELOC-NEXT: FixupBitValue: 0
40 ; RELOC-NEXT: Length: 16
41 ; RELOC-NEXT: Type: R_TOC (0x3)
43 ; RELOC-NEXT: Relocation {
44 ; RELOC-NEXT: Virtual Address: 0x14
45 ; RELOC-NEXT: Symbol: .__tls_get_mod ([[#NFA+1]])
46 ; RELOC-NEXT: IsSigned: No
47 ; RELOC-NEXT: FixupBitValue: 0
48 ; RELOC-NEXT: Length: 26
49 ; RELOC-NEXT: Type: R_RBA (0x18)
51 ; RELOC-NEXT: Relocation {
52 ; RELOC-NEXT: Virtual Address: 0x1A
53 ; RELOC-NEXT: Symbol: TIUninit ([[#NFA+27]])
54 ; RELOC-NEXT: IsSigned: No
55 ; RELOC-NEXT: FixupBitValue: 0
56 ; RELOC-NEXT: Length: 16
57 ; RELOC-NEXT: Type: R_TOC (0x3)
59 ; RELOC-NEXT: Relocation {
60 ; RELOC-NEXT: Virtual Address: 0x3A
61 ; RELOC-NEXT: Symbol: .TGInit ([[#NFA+29]])
62 ; RELOC-NEXT: IsSigned: No
63 ; RELOC-NEXT: FixupBitValue: 0
64 ; RELOC-NEXT: Length: 16
65 ; RELOC-NEXT: Type: R_TOC (0x3)
67 ; RELOC-NEXT: Relocation {
68 ; RELOC-NEXT: Virtual Address: 0x3E
69 ; RELOC-NEXT: Symbol: TGInit ([[#NFA+31]])
70 ; RELOC-NEXT: IsSigned: No
71 ; RELOC-NEXT: FixupBitValue: 0
72 ; RELOC-NEXT: Length: 16
73 ; RELOC-NEXT: Type: R_TOC (0x3)
75 ; RELOC-NEXT: Relocation {
76 ; RELOC-NEXT: Virtual Address: 0x44
77 ; RELOC-NEXT: Symbol: .__tls_get_addr ([[#NFA+3]])
78 ; RELOC-NEXT: IsSigned: No
79 ; RELOC-NEXT: FixupBitValue: 0
80 ; RELOC-NEXT: Length: 26
81 ; RELOC-NEXT: Type: R_RBA (0x18)
83 ; RELOC-NEXT: Relocation {
84 ; RELOC-NEXT: Virtual Address: 0x4A
85 ; RELOC-NEXT: Symbol: GInit ([[#NFA+33]])
86 ; RELOC-NEXT: IsSigned: No
87 ; RELOC-NEXT: FixupBitValue: 0
88 ; RELOC-NEXT: Length: 16
89 ; RELOC-NEXT: Type: R_TOC (0x3)
92 ; RELOC-NEXT: Section (index: 2) .data {
93 ; RELOC-NEXT: Relocation {
94 ; RELOC-NEXT: Virtual Address: 0x70
95 ; RELOC-NEXT: Symbol: .storesTIUninit ([[#NFA+7]])
96 ; RELOC-NEXT: IsSigned: No
97 ; RELOC-NEXT: FixupBitValue: 0
98 ; RELOC-NEXT: Length: 32
99 ; RELOC-NEXT: Type: R_POS (0x0)
101 ; RELOC-NEXT: Relocation {
102 ; RELOC-NEXT: Virtual Address: 0x74
103 ; RELOC-NEXT: Symbol: TOC ([[#NFA+23]])
104 ; RELOC-NEXT: IsSigned: No
105 ; RELOC-NEXT: FixupBitValue: 0
106 ; RELOC-NEXT: Length: 32
107 ; RELOC-NEXT: Type: R_POS (0x0)
109 ; RELOC-NEXT: Relocation {
110 ; RELOC-NEXT: Virtual Address: 0x7C
111 ; RELOC-NEXT: Symbol: .loadsTGInit ([[#NFA+9]])
112 ; RELOC-NEXT: IsSigned: No
113 ; RELOC-NEXT: FixupBitValue: 0
114 ; RELOC-NEXT: Length: 32
115 ; RELOC-NEXT: Type: R_POS (0x0)
117 ; RELOC-NEXT: Relocation {
118 ; RELOC-NEXT: Virtual Address: 0x80
119 ; RELOC-NEXT: Symbol: TOC ([[#NFA+23]])
120 ; RELOC-NEXT: IsSigned: No
121 ; RELOC-NEXT: FixupBitValue: 0
122 ; RELOC-NEXT: Length: 32
123 ; RELOC-NEXT: Type: R_POS (0x0)
125 ; RELOC-NEXT: Relocation {
126 ; RELOC-NEXT: Virtual Address: 0x88
127 ; RELOC-NEXT: Symbol: _$TLSML ([[#NFA+25]])
128 ; RELOC-NEXT: IsSigned: No
129 ; RELOC-NEXT: FixupBitValue: 0
130 ; RELOC-NEXT: Length: 32
131 ; RELOC-NEXT: Type: R_TLSML (0x25)
133 ; RELOC-NEXT: Relocation {
134 ; RELOC-NEXT: Virtual Address: 0x8C
135 ; RELOC-NEXT: Symbol: TIUninit ([[#NFA+39]])
136 ; RELOC-NEXT: IsSigned: No
137 ; RELOC-NEXT: FixupBitValue: 0
138 ; RELOC-NEXT: Length: 32
139 ; RELOC-NEXT: Type: R_TLS_LD (0x22)
141 ; RELOC-NEXT: Relocation {
142 ; RELOC-NEXT: Virtual Address: 0x90
143 ; RELOC-NEXT: Symbol: TGInit ([[#NFA+37]])
144 ; RELOC-NEXT: IsSigned: No
145 ; RELOC-NEXT: FixupBitValue: 0
146 ; RELOC-NEXT: Length: 32
147 ; RELOC-NEXT: Type: R_TLSM (0x24)
149 ; RELOC-NEXT: Relocation {
150 ; RELOC-NEXT: Virtual Address: 0x94
151 ; RELOC-NEXT: Symbol: TGInit ([[#NFA+37]])
152 ; RELOC-NEXT: IsSigned: No
153 ; RELOC-NEXT: FixupBitValue: 0
154 ; RELOC-NEXT: Length: 32
155 ; RELOC-NEXT: Type: R_TLS (0x20)
157 ; RELOC-NEXT: Relocation {
158 ; RELOC-NEXT: Virtual Address: 0x98
159 ; RELOC-NEXT: Symbol: GInit ([[#NFA+17]])
160 ; RELOC-NEXT: IsSigned: No
161 ; RELOC-NEXT: FixupBitValue: 0
162 ; RELOC-NEXT: Length: 32
163 ; RELOC-NEXT: Type: R_POS (0x0)
169 ; SYM-NEXT: Format: aixcoff-rs6000
170 ; SYM-NEXT: Arch: powerpc
171 ; SYM-NEXT: AddressSize: 32bit
172 ; SYM-NEXT: Symbols [
175 ; SYM-NEXT: Name: .file
176 ; SYM-NEXT: Value (SymbolTableIndex): 0x0
177 ; SYM-NEXT: Section: N_DEBUG
178 ; SYM-NEXT: Source Language ID: TB_CPLUSPLUS (0x9)
179 ; SYM-NEXT: CPU Version ID: TCPU_COM (0x3)
180 ; SYM-NEXT: StorageClass: C_FILE (0x67)
181 ; SYM-NEXT: NumberOfAuxEntries: 2
183 ; SYM-NEXT: Index: [[#NFA+1]]
184 ; SYM-NEXT: Name: .__tls_get_mod
185 ; SYM-NEXT: Value (RelocatableAddress): 0x0
186 ; SYM-NEXT: Section: N_UNDEF
187 ; SYM-NEXT: Type: 0x0
188 ; SYM-NEXT: StorageClass: C_EXT (0x2)
189 ; SYM-NEXT: NumberOfAuxEntries: 1
190 ; SYM-NEXT: CSECT Auxiliary Entry {
191 ; SYM-NEXT: Index: [[#NFA+2]]
192 ; SYM-NEXT: SectionLen: 0
193 ; SYM-NEXT: ParameterHashIndex: 0x0
194 ; SYM-NEXT: TypeChkSectNum: 0x0
195 ; SYM-NEXT: SymbolAlignmentLog2: 0
196 ; SYM-NEXT: SymbolType: XTY_ER (0x0)
197 ; SYM-NEXT: StorageMappingClass: XMC_PR (0x0)
198 ; SYM-NEXT: StabInfoIndex: 0x0
199 ; SYM-NEXT: StabSectNum: 0x0
203 ; SYM-NEXT: Index: [[#NFA+3]]
204 ; SYM-NEXT: Name: .__tls_get_addr
205 ; SYM-NEXT: Value (RelocatableAddress): 0x0
206 ; SYM-NEXT: Section: N_UNDEF
207 ; SYM-NEXT: Type: 0x0
208 ; SYM-NEXT: StorageClass: C_EXT (0x2)
209 ; SYM-NEXT: NumberOfAuxEntries: 1
210 ; SYM-NEXT: CSECT Auxiliary Entry {
211 ; SYM-NEXT: Index: [[#NFA+4]]
212 ; SYM-NEXT: SectionLen: 0
213 ; SYM-NEXT: ParameterHashIndex: 0x0
214 ; SYM-NEXT: TypeChkSectNum: 0x0
215 ; SYM-NEXT: SymbolAlignmentLog2: 0
216 ; SYM-NEXT: SymbolType: XTY_ER (0x0)
217 ; SYM-NEXT: StorageMappingClass: XMC_PR (0x0)
218 ; SYM-NEXT: StabInfoIndex: 0x0
219 ; SYM-NEXT: StabSectNum: 0x0
223 ; SYM-NEXT: Index: [[#NFA+5]]
225 ; SYM-NEXT: Value (RelocatableAddress): 0x0
226 ; SYM-NEXT: Section: .text
227 ; SYM-NEXT: Type: 0x0
228 ; SYM-NEXT: StorageClass: C_HIDEXT (0x6B)
229 ; SYM-NEXT: NumberOfAuxEntries: 1
230 ; SYM-NEXT: CSECT Auxiliary Entry {
231 ; SYM-NEXT: Index: [[#NFA+6]]
232 ; SYM-NEXT: SectionLen: 104
233 ; SYM-NEXT: ParameterHashIndex: 0x0
234 ; SYM-NEXT: TypeChkSectNum: 0x0
235 ; SYM-NEXT: SymbolAlignmentLog2: 5
236 ; SYM-NEXT: SymbolType: XTY_SD (0x1)
237 ; SYM-NEXT: StorageMappingClass: XMC_PR (0x0)
238 ; SYM-NEXT: StabInfoIndex: 0x0
239 ; SYM-NEXT: StabSectNum: 0x0
243 ; SYM-NEXT: Index: [[#NFA+7]]
244 ; SYM-NEXT: Name: .storesTIUninit
245 ; SYM-NEXT: Value (RelocatableAddress): 0x0
246 ; SYM-NEXT: Section: .text
247 ; SYM-NEXT: Type: 0x0
248 ; SYM-NEXT: StorageClass: C_EXT (0x2)
249 ; SYM-NEXT: NumberOfAuxEntries: 1
250 ; SYM-NEXT: CSECT Auxiliary Entry {
251 ; SYM-NEXT: Index: [[#NFA+8]]
252 ; SYM-NEXT: ContainingCsectSymbolIndex: [[#NFA+5]]
253 ; SYM-NEXT: ParameterHashIndex: 0x0
254 ; SYM-NEXT: TypeChkSectNum: 0x0
255 ; SYM-NEXT: SymbolAlignmentLog2: 0
256 ; SYM-NEXT: SymbolType: XTY_LD (0x2)
257 ; SYM-NEXT: StorageMappingClass: XMC_PR (0x0)
258 ; SYM-NEXT: StabInfoIndex: 0x0
259 ; SYM-NEXT: StabSectNum: 0x0
263 ; SYM-NEXT: Index: [[#NFA+9]]
264 ; SYM-NEXT: Name: .loadsTGInit
265 ; SYM-NEXT: Value (RelocatableAddress): 0x30
266 ; SYM-NEXT: Section: .text
267 ; SYM-NEXT: Type: 0x0
268 ; SYM-NEXT: StorageClass: C_EXT (0x2)
269 ; SYM-NEXT: NumberOfAuxEntries: 1
270 ; SYM-NEXT: CSECT Auxiliary Entry {
271 ; SYM-NEXT: Index: [[#NFA+10]]
272 ; SYM-NEXT: ContainingCsectSymbolIndex: [[#NFA+5]]
273 ; SYM-NEXT: ParameterHashIndex: 0x0
274 ; SYM-NEXT: TypeChkSectNum: 0x0
275 ; SYM-NEXT: SymbolAlignmentLog2: 0
276 ; SYM-NEXT: SymbolType: XTY_LD (0x2)
277 ; SYM-NEXT: StorageMappingClass: XMC_PR (0x0)
278 ; SYM-NEXT: StabInfoIndex: 0x0
279 ; SYM-NEXT: StabSectNum: 0x0
283 ; SYM-NEXT: Index: [[#NFA+11]]
284 ; SYM-NEXT: Name: .rodata
285 ; SYM-NEXT: Value (RelocatableAddress): 0x68
286 ; SYM-NEXT: Section: .text
287 ; SYM-NEXT: Type: 0x0
288 ; SYM-NEXT: StorageClass: C_HIDEXT (0x6B)
289 ; SYM-NEXT: NumberOfAuxEntries: 1
290 ; SYM-NEXT: CSECT Auxiliary Entry {
291 ; SYM-NEXT: Index: [[#NFA+12]]
292 ; SYM-NEXT: SectionLen: 4
293 ; SYM-NEXT: ParameterHashIndex: 0x0
294 ; SYM-NEXT: TypeChkSectNum: 0x0
295 ; SYM-NEXT: SymbolAlignmentLog2: 2
296 ; SYM-NEXT: SymbolType: XTY_SD (0x1)
297 ; SYM-NEXT: StorageMappingClass: XMC_RO (0x1)
298 ; SYM-NEXT: StabInfoIndex: 0x0
299 ; SYM-NEXT: StabSectNum: 0x0
303 ; SYM-NEXT: Index: [[#NFA+13]]
304 ; SYM-NEXT: Name: const_ivar
305 ; SYM-NEXT: Value (RelocatableAddress): 0x68
306 ; SYM-NEXT: Section: .text
307 ; SYM-NEXT: Type: 0x0
308 ; SYM-NEXT: StorageClass: C_EXT (0x2)
309 ; SYM-NEXT: NumberOfAuxEntries: 1
310 ; SYM-NEXT: CSECT Auxiliary Entry {
311 ; SYM-NEXT: Index: [[#NFA+14]]
312 ; SYM-NEXT: ContainingCsectSymbolIndex: [[#NFA+11]]
313 ; SYM-NEXT: ParameterHashIndex: 0x0
314 ; SYM-NEXT: TypeChkSectNum: 0x0
315 ; SYM-NEXT: SymbolAlignmentLog2: 0
316 ; SYM-NEXT: SymbolType: XTY_LD (0x2)
317 ; SYM-NEXT: StorageMappingClass: XMC_RO (0x1)
318 ; SYM-NEXT: StabInfoIndex: 0x0
319 ; SYM-NEXT: StabSectNum: 0x0
323 ; SYM-NEXT: Index: [[#NFA+15]]
324 ; SYM-NEXT: Name: .data
325 ; SYM-NEXT: Value (RelocatableAddress): 0x6C
326 ; SYM-NEXT: Section: .data
327 ; SYM-NEXT: Type: 0x0
328 ; SYM-NEXT: StorageClass: C_HIDEXT (0x6B)
329 ; SYM-NEXT: NumberOfAuxEntries: 1
330 ; SYM-NEXT: CSECT Auxiliary Entry {
331 ; SYM-NEXT: Index: [[#NFA+16]]
332 ; SYM-NEXT: SectionLen: 4
333 ; SYM-NEXT: ParameterHashIndex: 0x0
334 ; SYM-NEXT: TypeChkSectNum: 0x0
335 ; SYM-NEXT: SymbolAlignmentLog2: 2
336 ; SYM-NEXT: SymbolType: XTY_SD (0x1)
337 ; SYM-NEXT: StorageMappingClass: XMC_RW (0x5)
338 ; SYM-NEXT: StabInfoIndex: 0x0
339 ; SYM-NEXT: StabSectNum: 0x0
343 ; SYM-NEXT: Index: [[#NFA+17]]
344 ; SYM-NEXT: Name: GInit
345 ; SYM-NEXT: Value (RelocatableAddress): 0x6C
346 ; SYM-NEXT: Section: .data
347 ; SYM-NEXT: Type: 0x0
348 ; SYM-NEXT: StorageClass: C_EXT (0x2)
349 ; SYM-NEXT: NumberOfAuxEntries: 1
350 ; SYM-NEXT: CSECT Auxiliary Entry {
351 ; SYM-NEXT: Index: [[#NFA+18]]
352 ; SYM-NEXT: ContainingCsectSymbolIndex: [[#NFA+15]]
353 ; SYM-NEXT: ParameterHashIndex: 0x0
354 ; SYM-NEXT: TypeChkSectNum: 0x0
355 ; SYM-NEXT: SymbolAlignmentLog2: 0
356 ; SYM-NEXT: SymbolType: XTY_LD (0x2)
357 ; SYM-NEXT: StorageMappingClass: XMC_RW (0x5)
358 ; SYM-NEXT: StabInfoIndex: 0x0
359 ; SYM-NEXT: StabSectNum: 0x0
363 ; SYM-NEXT: Index: [[#NFA+19]]
364 ; SYM-NEXT: Name: storesTIUninit
365 ; SYM-NEXT: Value (RelocatableAddress): 0x70
366 ; SYM-NEXT: Section: .data
367 ; SYM-NEXT: Type: 0x0
368 ; SYM-NEXT: StorageClass: C_EXT (0x2)
369 ; SYM-NEXT: NumberOfAuxEntries: 1
370 ; SYM-NEXT: CSECT Auxiliary Entry {
371 ; SYM-NEXT: Index: [[#NFA+20]]
372 ; SYM-NEXT: SectionLen: 12
373 ; SYM-NEXT: ParameterHashIndex: 0x0
374 ; SYM-NEXT: TypeChkSectNum: 0x0
375 ; SYM-NEXT: SymbolAlignmentLog2: 2
376 ; SYM-NEXT: SymbolType: XTY_SD (0x1)
377 ; SYM-NEXT: StorageMappingClass: XMC_DS (0xA)
378 ; SYM-NEXT: StabInfoIndex: 0x0
379 ; SYM-NEXT: StabSectNum: 0x0
383 ; SYM-NEXT: Index: [[#NFA+21]]
384 ; SYM-NEXT: Name: loadsTGInit
385 ; SYM-NEXT: Value (RelocatableAddress): 0x7C
386 ; SYM-NEXT: Section: .data
387 ; SYM-NEXT: Type: 0x0
388 ; SYM-NEXT: StorageClass: C_EXT (0x2)
389 ; SYM-NEXT: NumberOfAuxEntries: 1
390 ; SYM-NEXT: CSECT Auxiliary Entry {
391 ; SYM-NEXT: Index: [[#NFA+22]]
392 ; SYM-NEXT: SectionLen: 12
393 ; SYM-NEXT: ParameterHashIndex: 0x0
394 ; SYM-NEXT: TypeChkSectNum: 0x0
395 ; SYM-NEXT: SymbolAlignmentLog2: 2
396 ; SYM-NEXT: SymbolType: XTY_SD (0x1)
397 ; SYM-NEXT: StorageMappingClass: XMC_DS (0xA)
398 ; SYM-NEXT: StabInfoIndex: 0x0
399 ; SYM-NEXT: StabSectNum: 0x0
403 ; SYM-NEXT: Index: [[#NFA+23]]
404 ; SYM-NEXT: Name: TOC
405 ; SYM-NEXT: Value (RelocatableAddress): 0x88
406 ; SYM-NEXT: Section: .data
407 ; SYM-NEXT: Type: 0x0
408 ; SYM-NEXT: StorageClass: C_HIDEXT (0x6B)
409 ; SYM-NEXT: NumberOfAuxEntries: 1
410 ; SYM-NEXT: CSECT Auxiliary Entry {
411 ; SYM-NEXT: Index: [[#NFA+24]]
412 ; SYM-NEXT: SectionLen: 0
413 ; SYM-NEXT: ParameterHashIndex: 0x0
414 ; SYM-NEXT: TypeChkSectNum: 0x0
415 ; SYM-NEXT: SymbolAlignmentLog2: 2
416 ; SYM-NEXT: SymbolType: XTY_SD (0x1)
417 ; SYM-NEXT: StorageMappingClass: XMC_TC0 (0xF)
418 ; SYM-NEXT: StabInfoIndex: 0x0
419 ; SYM-NEXT: StabSectNum: 0x0
423 ; SYM-NEXT: Index: [[#NFA+25]]
424 ; SYM-NEXT: Name: _$TLSML
425 ; SYM-NEXT: Value (RelocatableAddress): 0x88
426 ; SYM-NEXT: Section: .data
427 ; SYM-NEXT: Type: 0x0
428 ; SYM-NEXT: StorageClass: C_HIDEXT (0x6B)
429 ; SYM-NEXT: NumberOfAuxEntries: 1
430 ; SYM-NEXT: CSECT Auxiliary Entry {
431 ; SYM-NEXT: Index: [[#NFA+26]]
432 ; SYM-NEXT: SectionLen: 4
433 ; SYM-NEXT: ParameterHashIndex: 0x0
434 ; SYM-NEXT: TypeChkSectNum: 0x0
435 ; SYM-NEXT: SymbolAlignmentLog2: 2
436 ; SYM-NEXT: SymbolType: XTY_SD (0x1)
437 ; SYM-NEXT: StorageMappingClass: XMC_TC (0x3)
438 ; SYM-NEXT: StabInfoIndex: 0x0
439 ; SYM-NEXT: StabSectNum: 0x0
443 ; SYM-NEXT: Index: [[#NFA+27]]
444 ; SYM-NEXT: Name: TIUninit
445 ; SYM-NEXT: Value (RelocatableAddress): 0x8C
446 ; SYM-NEXT: Section: .data
447 ; SYM-NEXT: Type: 0x0
448 ; SYM-NEXT: StorageClass: C_HIDEXT (0x6B)
449 ; SYM-NEXT: NumberOfAuxEntries: 1
450 ; SYM-NEXT: CSECT Auxiliary Entry {
451 ; SYM-NEXT: Index: [[#NFA+28]]
452 ; SYM-NEXT: SectionLen: 4
453 ; SYM-NEXT: ParameterHashIndex: 0x0
454 ; SYM-NEXT: TypeChkSectNum: 0x0
455 ; SYM-NEXT: SymbolAlignmentLog2: 2
456 ; SYM-NEXT: SymbolType: XTY_SD (0x1)
457 ; SYM-NEXT: StorageMappingClass: XMC_TC (0x3)
458 ; SYM-NEXT: StabInfoIndex: 0x0
459 ; SYM-NEXT: StabSectNum: 0x0
463 ; SYM-NEXT: Index: [[#NFA+29]]
464 ; SYM-NEXT: Name: .TGInit
465 ; SYM-NEXT: Value (RelocatableAddress): 0x90
466 ; SYM-NEXT: Section: .data
467 ; SYM-NEXT: Type: 0x0
468 ; SYM-NEXT: StorageClass: C_HIDEXT (0x6B)
469 ; SYM-NEXT: NumberOfAuxEntries: 1
470 ; SYM-NEXT: CSECT Auxiliary Entry {
471 ; SYM-NEXT: Index: [[#NFA+30]]
472 ; SYM-NEXT: SectionLen: 4
473 ; SYM-NEXT: ParameterHashIndex: 0x0
474 ; SYM-NEXT: TypeChkSectNum: 0x0
475 ; SYM-NEXT: SymbolAlignmentLog2: 2
476 ; SYM-NEXT: SymbolType: XTY_SD (0x1)
477 ; SYM-NEXT: StorageMappingClass: XMC_TC (0x3)
478 ; SYM-NEXT: StabInfoIndex: 0x0
479 ; SYM-NEXT: StabSectNum: 0x0
483 ; SYM-NEXT: Index: [[#NFA+31]]
484 ; SYM-NEXT: Name: TGInit
485 ; SYM-NEXT: Value (RelocatableAddress): 0x94
486 ; SYM-NEXT: Section: .data
487 ; SYM-NEXT: Type: 0x0
488 ; SYM-NEXT: StorageClass: C_HIDEXT (0x6B)
489 ; SYM-NEXT: NumberOfAuxEntries: 1
490 ; SYM-NEXT: CSECT Auxiliary Entry {
491 ; SYM-NEXT: Index: [[#NFA+32]]
492 ; SYM-NEXT: SectionLen: 4
493 ; SYM-NEXT: ParameterHashIndex: 0x0
494 ; SYM-NEXT: TypeChkSectNum: 0x0
495 ; SYM-NEXT: SymbolAlignmentLog2: 2
496 ; SYM-NEXT: SymbolType: XTY_SD (0x1)
497 ; SYM-NEXT: StorageMappingClass: XMC_TC (0x3)
498 ; SYM-NEXT: StabInfoIndex: 0x0
499 ; SYM-NEXT: StabSectNum: 0x0
503 ; SYM-NEXT: Index: [[#NFA+33]]
504 ; SYM-NEXT: Name: GInit
505 ; SYM-NEXT: Value (RelocatableAddress): 0x98
506 ; SYM-NEXT: Section: .data
507 ; SYM-NEXT: Type: 0x0
508 ; SYM-NEXT: StorageClass: C_HIDEXT (0x6B)
509 ; SYM-NEXT: NumberOfAuxEntries: 1
510 ; SYM-NEXT: CSECT Auxiliary Entry {
511 ; SYM-NEXT: Index: [[#NFA+34]]
512 ; SYM-NEXT: SectionLen: 4
513 ; SYM-NEXT: ParameterHashIndex: 0x0
514 ; SYM-NEXT: TypeChkSectNum: 0x0
515 ; SYM-NEXT: SymbolAlignmentLog2: 2
516 ; SYM-NEXT: SymbolType: XTY_SD (0x1)
517 ; SYM-NEXT: StorageMappingClass: XMC_TC (0x3)
518 ; SYM-NEXT: StabInfoIndex: 0x0
519 ; SYM-NEXT: StabSectNum: 0x0
523 ; SYM-NEXT: Index: [[#NFA+35]]
524 ; SYM-NEXT: Name: .tdata
525 ; SYM-NEXT: Value (RelocatableAddress): 0x0
526 ; SYM-NEXT: Section: .tdata
527 ; SYM-NEXT: Type: 0x0
528 ; SYM-NEXT: StorageClass: C_HIDEXT (0x6B)
529 ; SYM-NEXT: NumberOfAuxEntries: 1
530 ; SYM-NEXT: CSECT Auxiliary Entry {
531 ; SYM-NEXT: Index: [[#NFA+36]]
532 ; SYM-NEXT: SectionLen: 4
533 ; SYM-NEXT: ParameterHashIndex: 0x0
534 ; SYM-NEXT: TypeChkSectNum: 0x0
535 ; SYM-NEXT: SymbolAlignmentLog2: 2
536 ; SYM-NEXT: SymbolType: XTY_SD (0x1)
537 ; SYM-NEXT: StorageMappingClass: XMC_TL (0x14)
538 ; SYM-NEXT: StabInfoIndex: 0x0
539 ; SYM-NEXT: StabSectNum: 0x0
543 ; SYM-NEXT: Index: [[#NFA+37]]
544 ; SYM-NEXT: Name: TGInit
545 ; SYM-NEXT: Value (RelocatableAddress): 0x0
546 ; SYM-NEXT: Section: .tdata
547 ; SYM-NEXT: Type: 0x0
548 ; SYM-NEXT: StorageClass: C_EXT (0x2)
549 ; SYM-NEXT: NumberOfAuxEntries: 1
550 ; SYM-NEXT: CSECT Auxiliary Entry {
551 ; SYM-NEXT: Index: [[#NFA+38]]
552 ; SYM-NEXT: ContainingCsectSymbolIndex: [[#NFA+35]]
553 ; SYM-NEXT: ParameterHashIndex: 0x0
554 ; SYM-NEXT: TypeChkSectNum: 0x0
555 ; SYM-NEXT: SymbolAlignmentLog2: 0
556 ; SYM-NEXT: SymbolType: XTY_LD (0x2)
557 ; SYM-NEXT: StorageMappingClass: XMC_TL (0x14)
558 ; SYM-NEXT: StabInfoIndex: 0x0
559 ; SYM-NEXT: StabSectNum: 0x0
563 ; SYM-NEXT: Index: [[#NFA+39]]
564 ; SYM-NEXT: Name: TIUninit
565 ; SYM-NEXT: Value (RelocatableAddress): 0x4
566 ; SYM-NEXT: Section: .tbss
567 ; SYM-NEXT: Type: 0x0
568 ; SYM-NEXT: StorageClass: C_HIDEXT (0x6B)
569 ; SYM-NEXT: NumberOfAuxEntries: 1
570 ; SYM-NEXT: CSECT Auxiliary Entry {
571 ; SYM-NEXT: Index: [[#NFA+40]]
572 ; SYM-NEXT: SectionLen: 4
573 ; SYM-NEXT: ParameterHashIndex: 0x0
574 ; SYM-NEXT: TypeChkSectNum: 0x0
575 ; SYM-NEXT: SymbolAlignmentLog2: 2
576 ; SYM-NEXT: SymbolType: XTY_CM (0x3)
577 ; SYM-NEXT: StorageMappingClass: XMC_UL (0x15)
578 ; SYM-NEXT: StabInfoIndex: 0x0
579 ; SYM-NEXT: StabSectNum: 0x0
584 ; DIS: {{.*}}aix-tls-xcoff-reloc.ll.tmp.o: file format aixcoff-rs6000
585 ; DIS: Disassembly of section .text:
586 ; DIS: 00000000 (idx: [[#NFA+7]]) .storesTIUninit:
588 ; DIS-NEXT: stwu 1, -32(1)
590 ; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} lwz 3, 0(2)
591 ; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOC (idx: [[#NFA+25]]) _$TLSML[TC]
592 ; DIS-NEXT: stw 0, 40(1)
593 ; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} bla 0x0
594 ; DIS-NEXT: {{0*}}[[#ADDR]]: R_RBA (idx: [[#NFA+1]]) .__tls_get_mod[PR]
595 ; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} lwz 4, 4(2)
596 ; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOC (idx: [[#NFA+27]]) TIUninit[TC]
597 ; DIS-NEXT: stwx 6, 3, 4
598 ; DIS-NEXT: addi 1, 1, 32
599 ; DIS-NEXT: lwz 0, 8(1)
602 ; DIS: 00000030 (idx: [[#NFA+9]]) .loadsTGInit:
604 ; DIS-NEXT: stwu 1, -32(1)
605 ; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} lwz 3, 8(2)
606 ; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOC (idx: [[#NFA+29]]) .TGInit[TC]
607 ; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} lwz 4, 12(2)
608 ; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOC (idx: [[#NFA+31]]) TGInit[TC]
609 ; DIS-NEXT: stw 0, 40(1)
610 ; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} bla 0
611 ; DIS-NEXT: {{0*}}[[#ADDR]]: R_RBA (idx: [[#NFA+3]]) .__tls_get_addr[PR]
612 ; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} lwz 4, 16(2)
613 ; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOC (idx: [[#NFA+33]]) GInit[TC]
614 ; DIS-NEXT: lwz 3, 0(3)
615 ; DIS-NEXT: lwz 4, 0(4)
616 ; DIS-NEXT: add 3, 4, 3
617 ; DIS-NEXT: addi 1, 1, 32
618 ; DIS-NEXT: lwz 0, 8(1)
621 ; DIS: 00000068 (idx: [[#NFA+13]]) const_ivar:
622 ; DIS-NEXT: 68: 00 00 00 06
624 ; DIS: Disassembly of section .data:
625 ; DIS: 0000006c (idx: [[#NFA+17]]) GInit:
626 ; DIS-NEXT: 6c: 00 00 00 01
627 ; DIS: 00000070 (idx: [[#NFA+19]]) storesTIUninit[DS]:
628 ; DIS-NEXT: 70: 00 00 00 00
629 ; DIS-NEXT: 00000070: R_POS (idx: [[#NFA+7]]) .storesTIUninit
630 ; DIS-NEXT: 74: 00 00 00 88
631 ; DIS-NEXT: 00000074: R_POS (idx: [[#NFA+23]]) TOC[TC0]
632 ; DIS-NEXT: 78: 00 00 00 00
633 ; DIS: 0000007c (idx: [[#NFA+21]]) loadsTGInit[DS]:
634 ; DIS-NEXT: 7c: 00 00 00 30
635 ; DIS-NEXT: 0000007c: R_POS (idx: [[#NFA+9]]) .loadsTGInit
636 ; DIS-NEXT: 80: 00 00 00 88
637 ; DIS-NEXT: 00000080: R_POS (idx: [[#NFA+23]]) TOC[TC0]
638 ; DIS-NEXT: 84: 00 00 00 00
639 ; DIS: 00000088 (idx: [[#NFA+25]]) _$TLSML[TC]:
640 ; DIS-NEXT: 88: 00 00 00 00
641 ; DIS-NEXT: 00000088: R_TLSML (idx: [[#NFA+25]]) _$TLSML[TC]
642 ; DIS: 0000008c (idx: [[#NFA+27]]) TIUninit[TC]:
643 ; DIS-NEXT: 8c: 00 00 00 04
644 ; DIS-NEXT: 0000008c: R_TLS_LD (idx: [[#NFA+39]]) TIUninit[UL]
645 ; DIS: 00000090 (idx: [[#NFA+29]]) .TGInit[TC]:
646 ; DIS-NEXT: 90: 00 00 00 00
647 ; DIS-NEXT: 00000090: R_TLSM (idx: [[#NFA+37]]) TGInit
648 ; DIS: 00000094 (idx: [[#NFA+31]]) TGInit[TC]:
649 ; DIS-NEXT: 94: 00 00 00 00
650 ; DIS-NEXT: 00000094: R_TLS (idx: [[#NFA+37]]) TGInit
651 ; DIS: 00000098 (idx: [[#NFA+33]]) GInit[TC]:
652 ; DIS-NEXT: 98: 00 00 00 6c
653 ; DIS-NEXT: 00000098: R_POS (idx: [[#NFA+17]]) GInit
655 ; DIS: Disassembly of section .tdata:
656 ; DIS: 00000000 (idx: [[#NFA+37]]) TGInit:
657 ; DIS-NEXT: 0: 00 00 00 01
659 ; DIS: Disassembly of section .tbss:
660 ; DIS: 00000004 (idx: [[#NFA+39]]) TIUninit[UL]:
663 attributes #0 = { nofree norecurse nounwind willreturn writeonly "frame-pointer"="none" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="pwr4" "target-features"="-altivec,-bpermd,-crypto,-direct-move,-extdiv,-float128,-htm,-mma,-paired-vector-memops,-power10-vector,-power8-vector,-power9-vector,-spe,-vsx" }
664 attributes #1 = { norecurse nounwind readonly willreturn "frame-pointer"="none" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="pwr4" "target-features"="-altivec,-bpermd,-crypto,-direct-move,-extdiv,-float128,-htm,-mma,-paired-vector-memops,-power10-vector,-power8-vector,-power9-vector,-spe,-vsx" }