1; RUN: llc -verify-machineinstrs -mcpu=pwr4 -mattr=-altivec -mtriple powerpc-ibm-aix-xcoff \ 2; RUN: -xcoff-traceback-table=false --code-model=large -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 6 7@GInit = global double 1.000000e+00, align 8 8; @TIInit is local-dynamic indeed 9@TIInit = internal thread_local global i64 1, align 8 10@TWInit = weak thread_local global double 1.000000e+00, align 8 11 12; Function Attrs: nofree norecurse nounwind willreturn writeonly 13define void @storesTIInit(i64 %Val) #0 { 14entry: 15 store i64 %Val, ptr @TIInit, align 8 16 ret void 17} 18 19; Function Attrs: norecurse nounwind readonly willreturn 20define double @loadsTWInit() #1 { 21entry: 22 %0 = load double, ptr @TWInit, align 8 23 %1 = load double, ptr @GInit, align 8 24 %add = fadd double %0, %1 25 ret double %add 26} 27 28; RELOC: File: 29; RELOC-NEXT: Format: aixcoff-rs6000 30; RELOC-NEXT: Arch: powerpc 31; RELOC-NEXT: AddressSize: 32bit 32; RELOC-NEXT: Relocations [ 33; RELOC-NEXT: Section (index: 1) .text { 34; RELOC-NEXT: Relocation { 35; RELOC-NEXT: Virtual Address: 0x12 36; RELOC-NEXT: Symbol: TIInit ([[#NFA+19]]) 37; RELOC-NEXT: IsSigned: No 38; RELOC-NEXT: FixupBitValue: 0 39; RELOC-NEXT: Length: 16 40; RELOC-NEXT: Type: R_TOCU (0x30) 41; RELOC-NEXT: } 42; RELOC-NEXT: Relocation { 43; RELOC-NEXT: Virtual Address: 0x16 44; RELOC-NEXT: Symbol: _$TLSML ([[#NFA+21]]) 45; RELOC-NEXT: IsSigned: No 46; RELOC-NEXT: FixupBitValue: 0 47; RELOC-NEXT: Length: 16 48; RELOC-NEXT: Type: R_TOCU (0x30) 49; RELOC-NEXT: } 50; RELOC-NEXT: Relocation { 51; RELOC-NEXT: Virtual Address: 0x1E 52; RELOC-NEXT: Symbol: _$TLSML ([[#NFA+21]]) 53; RELOC-NEXT: IsSigned: No 54; RELOC-NEXT: FixupBitValue: 0 55; RELOC-NEXT: Length: 16 56; RELOC-NEXT: Type: R_TOCL (0x31) 57; RELOC-NEXT: } 58; RELOC-NEXT: Relocation { 59; RELOC-NEXT: Virtual Address: 0x20 60; RELOC-NEXT: Symbol: .__tls_get_mod ([[#NFA+1]]) 61; RELOC-NEXT: IsSigned: No 62; RELOC-NEXT: FixupBitValue: 0 63; RELOC-NEXT: Length: 26 64; RELOC-NEXT: Type: R_RBA (0x18) 65; RELOC-NEXT: } 66; RELOC-NEXT: Relocation { 67; RELOC-NEXT: Virtual Address: 0x26 68; RELOC-NEXT: Symbol: TIInit ([[#NFA+19]]) 69; RELOC-NEXT: IsSigned: No 70; RELOC-NEXT: FixupBitValue: 0 71; RELOC-NEXT: Length: 16 72; RELOC-NEXT: Type: R_TOCL (0x31) 73; RELOC-NEXT: } 74; RELOC-NEXT: Relocation { 75; RELOC-NEXT: Virtual Address: 0x4E 76; RELOC-NEXT: Symbol: .TWInit ([[#NFA+23]]) 77; RELOC-NEXT: IsSigned: No 78; RELOC-NEXT: FixupBitValue: 0 79; RELOC-NEXT: Length: 16 80; RELOC-NEXT: Type: R_TOCU (0x30) 81; RELOC-NEXT: } 82; RELOC-NEXT: Relocation { 83; RELOC-NEXT: Virtual Address: 0x52 84; RELOC-NEXT: Symbol: TWInit ([[#NFA+25]]) 85; RELOC-NEXT: IsSigned: No 86; RELOC-NEXT: FixupBitValue: 0 87; RELOC-NEXT: Length: 16 88; RELOC-NEXT: Type: R_TOCU (0x30) 89; RELOC-NEXT: } 90; RELOC-NEXT: Relocation { 91; RELOC-NEXT: Virtual Address: 0x56 92; RELOC-NEXT: Symbol: .TWInit ([[#NFA+23]]) 93; RELOC-NEXT: IsSigned: No 94; RELOC-NEXT: FixupBitValue: 0 95; RELOC-NEXT: Length: 16 96; RELOC-NEXT: Type: R_TOCL (0x31) 97; RELOC-NEXT: } 98; RELOC-NEXT: Relocation { 99; RELOC-NEXT: Virtual Address: 0x5A 100; RELOC-NEXT: Symbol: TWInit ([[#NFA+25]]) 101; RELOC-NEXT: IsSigned: No 102; RELOC-NEXT: FixupBitValue: 0 103; RELOC-NEXT: Length: 16 104; RELOC-NEXT: Type: R_TOCL (0x31) 105; RELOC-NEXT: } 106; RELOC-NEXT: Relocation { 107; RELOC-NEXT: Virtual Address: 0x5C 108; RELOC-NEXT: Symbol: .__tls_get_addr ([[#NFA+3]]) 109; RELOC-NEXT: IsSigned: No 110; RELOC-NEXT: FixupBitValue: 0 111; RELOC-NEXT: Length: 26 112; RELOC-NEXT: Type: R_RBA (0x18) 113; RELOC-NEXT: } 114; RELOC-NEXT: Relocation { 115; RELOC-NEXT: Virtual Address: 0x66 116; RELOC-NEXT: Symbol: GInit ([[#NFA+27]]) 117; RELOC-NEXT: IsSigned: No 118; RELOC-NEXT: FixupBitValue: 0 119; RELOC-NEXT: Length: 16 120; RELOC-NEXT: Type: R_TOCU (0x30) 121; RELOC-NEXT: } 122; RELOC-NEXT: Relocation { 123; RELOC-NEXT: Virtual Address: 0x6A 124; RELOC-NEXT: Symbol: GInit ([[#NFA+27]]) 125; RELOC-NEXT: IsSigned: No 126; RELOC-NEXT: FixupBitValue: 0 127; RELOC-NEXT: Length: 16 128; RELOC-NEXT: Type: R_TOCL (0x31) 129; RELOC-NEXT: } 130; RELOC-NEXT: } 131; RELOC-NEXT: Section (index: 2) .data { 132; RELOC-NEXT: Relocation { 133; RELOC-NEXT: Virtual Address: 0x90 134; RELOC-NEXT: Symbol: .storesTIInit ([[#NFA+7]]) 135; RELOC-NEXT: IsSigned: No 136; RELOC-NEXT: FixupBitValue: 0 137; RELOC-NEXT: Length: 32 138; RELOC-NEXT: Type: R_POS (0x0) 139; RELOC-NEXT: } 140; RELOC-NEXT: Relocation { 141; RELOC-NEXT: Virtual Address: 0x94 142; RELOC-NEXT: Symbol: TOC ([[#NFA+17]]) 143; RELOC-NEXT: IsSigned: No 144; RELOC-NEXT: FixupBitValue: 0 145; RELOC-NEXT: Length: 32 146; RELOC-NEXT: Type: R_POS (0x0) 147; RELOC-NEXT: } 148; RELOC-NEXT: Relocation { 149; RELOC-NEXT: Virtual Address: 0x9C 150; RELOC-NEXT: Symbol: .loadsTWInit ([[#NFA+9]]) 151; RELOC-NEXT: IsSigned: No 152; RELOC-NEXT: FixupBitValue: 0 153; RELOC-NEXT: Length: 32 154; RELOC-NEXT: Type: R_POS (0x0) 155; RELOC-NEXT: } 156; RELOC-NEXT: Relocation { 157; RELOC-NEXT: Virtual Address: 0xA0 158; RELOC-NEXT: Symbol: TOC ([[#NFA+17]]) 159; RELOC-NEXT: IsSigned: No 160; RELOC-NEXT: FixupBitValue: 0 161; RELOC-NEXT: Length: 32 162; RELOC-NEXT: Type: R_POS (0x0) 163; RELOC-NEXT: } 164; RELOC-NEXT: Relocation { 165; RELOC-NEXT: Virtual Address: 0xA8 166; RELOC-NEXT: Symbol: TIInit ([[#NFA+29]]) 167; RELOC-NEXT: IsSigned: No 168; RELOC-NEXT: FixupBitValue: 0 169; RELOC-NEXT: Length: 32 170; RELOC-NEXT: Type: R_TLS_LD (0x22) 171; RELOC-NEXT: } 172; RELOC-NEXT: Relocation { 173; RELOC-NEXT: Virtual Address: 0xAC 174; RELOC-NEXT: Symbol: _$TLSML ([[#NFA+21]]) 175; RELOC-NEXT: IsSigned: No 176; RELOC-NEXT: FixupBitValue: 0 177; RELOC-NEXT: Length: 32 178; RELOC-NEXT: Type: R_TLSML (0x25) 179; RELOC-NEXT: } 180; RELOC-NEXT: Relocation { 181; RELOC-NEXT: Virtual Address: 0xB0 182; RELOC-NEXT: Symbol: TWInit ([[#NFA+31]]) 183; RELOC-NEXT: IsSigned: No 184; RELOC-NEXT: FixupBitValue: 0 185; RELOC-NEXT: Length: 32 186; RELOC-NEXT: Type: R_TLSM (0x24) 187; RELOC-NEXT: } 188; RELOC-NEXT: Relocation { 189; RELOC-NEXT: Virtual Address: 0xB4 190; RELOC-NEXT: Symbol: TWInit ([[#NFA+31]]) 191; RELOC-NEXT: IsSigned: No 192; RELOC-NEXT: FixupBitValue: 0 193; RELOC-NEXT: Length: 32 194; RELOC-NEXT: Type: R_TLS (0x20) 195; RELOC-NEXT: } 196; RELOC-NEXT: Relocation { 197; RELOC-NEXT: Virtual Address: 0xB8 198; RELOC-NEXT: Symbol: GInit ([[#NFA+11]]) 199; RELOC-NEXT: IsSigned: No 200; RELOC-NEXT: FixupBitValue: 0 201; RELOC-NEXT: Length: 32 202; RELOC-NEXT: Type: R_POS (0x0) 203; RELOC-NEXT: } 204; RELOC-NEXT: } 205; RELOC-NEXT: ] 206 207; SYM: File: 208; SYM-NEXT: Format: aixcoff-rs6000 209; SYM-NEXT: Arch: powerpc 210; SYM-NEXT: AddressSize: 32bit 211; SYM-NEXT: Symbols [ 212; SYM-NEXT: Symbol { 213; SYM-NEXT: Index: 0 214; SYM-NEXT: Name: .file 215; SYM-NEXT: Value (SymbolTableIndex): 0x0 216; SYM-NEXT: Section: N_DEBUG 217; SYM-NEXT: Source Language ID: TB_CPLUSPLUS (0x9) 218; SYM-NEXT: CPU Version ID: TCPU_COM (0x3) 219; SYM-NEXT: StorageClass: C_FILE (0x67) 220; SYM-NEXT: NumberOfAuxEntries: 2 221; SYM-NEXT: File Auxiliary Entry { 222; SYM-NEXT: Index: 1 223; SYM-NEXT: Name: 224; SYM-NEXT: Type: XFT_FN (0x0) 225; SYM-NEXT: } 226; SYM-NEXT: File Auxiliary Entry { 227; SYM-NEXT: Index: 2 228; SYM-NEXT: Name: LLVM 229; SYM-NEXT: Type: XFT_CV (0x2) 230; SYM-NEXT: } 231; SYM-NEXT: } 232; SYM-NEXT: Symbol { 233; SYM-NEXT: Index: [[#NFA+1]] 234; SYM-NEXT: Name: .__tls_get_mod 235; SYM-NEXT: Value (RelocatableAddress): 0x0 236; SYM-NEXT: Section: N_UNDEF 237; SYM-NEXT: Type: 0x0 238; SYM-NEXT: StorageClass: C_EXT (0x2) 239; SYM-NEXT: NumberOfAuxEntries: 1 240; SYM-NEXT: CSECT Auxiliary Entry { 241; SYM-NEXT: Index: [[#NFA+2]] 242; SYM-NEXT: SectionLen: 0 243; SYM-NEXT: ParameterHashIndex: 0x0 244; SYM-NEXT: TypeChkSectNum: 0x0 245; SYM-NEXT: SymbolAlignmentLog2: 0 246; SYM-NEXT: SymbolType: XTY_ER (0x0) 247; SYM-NEXT: StorageMappingClass: XMC_PR (0x0) 248; SYM-NEXT: StabInfoIndex: 0x0 249; SYM-NEXT: StabSectNum: 0x0 250; SYM-NEXT: } 251; SYM-NEXT: } 252; SYM-NEXT: Symbol { 253; SYM-NEXT: Index: [[#NFA+3]] 254; SYM-NEXT: Name: .__tls_get_addr 255; SYM-NEXT: Value (RelocatableAddress): 0x0 256; SYM-NEXT: Section: N_UNDEF 257; SYM-NEXT: Type: 0x0 258; SYM-NEXT: StorageClass: C_EXT (0x2) 259; SYM-NEXT: NumberOfAuxEntries: 1 260; SYM-NEXT: CSECT Auxiliary Entry { 261; SYM-NEXT: Index: [[#NFA+4]] 262; SYM-NEXT: SectionLen: 0 263; SYM-NEXT: ParameterHashIndex: 0x0 264; SYM-NEXT: TypeChkSectNum: 0x0 265; SYM-NEXT: SymbolAlignmentLog2: 0 266; SYM-NEXT: SymbolType: XTY_ER (0x0) 267; SYM-NEXT: StorageMappingClass: XMC_PR (0x0) 268; SYM-NEXT: StabInfoIndex: 0x0 269; SYM-NEXT: StabSectNum: 0x0 270; SYM-NEXT: } 271; SYM-NEXT: } 272; SYM-NEXT: Symbol { 273; SYM-NEXT: Index: [[#NFA+5]] 274; SYM-NEXT: Name: 275; SYM-NEXT: Value (RelocatableAddress): 0x0 276; SYM-NEXT: Section: .text 277; SYM-NEXT: Type: 0x0 278; SYM-NEXT: StorageClass: C_HIDEXT (0x6B) 279; SYM-NEXT: NumberOfAuxEntries: 1 280; SYM-NEXT: CSECT Auxiliary Entry { 281; SYM-NEXT: Index: [[#NFA+6]] 282; SYM-NEXT: SectionLen: 132 283; SYM-NEXT: ParameterHashIndex: 0x0 284; SYM-NEXT: TypeChkSectNum: 0x0 285; SYM-NEXT: SymbolAlignmentLog2: 5 286; SYM-NEXT: SymbolType: XTY_SD (0x1) 287; SYM-NEXT: StorageMappingClass: XMC_PR (0x0) 288; SYM-NEXT: StabInfoIndex: 0x0 289; SYM-NEXT: StabSectNum: 0x0 290; SYM-NEXT: } 291; SYM-NEXT: } 292; SYM-NEXT: Symbol { 293; SYM-NEXT: Index: [[#NFA+7]] 294; SYM-NEXT: Name: .storesTIInit 295; SYM-NEXT: Value (RelocatableAddress): 0x0 296; SYM-NEXT: Section: .text 297; SYM-NEXT: Type: 0x0 298; SYM-NEXT: StorageClass: C_EXT (0x2) 299; SYM-NEXT: NumberOfAuxEntries: 1 300; SYM-NEXT: CSECT Auxiliary Entry { 301; SYM-NEXT: Index: [[#NFA+8]] 302; SYM-NEXT: ContainingCsectSymbolIndex: [[#NFA+5]] 303; SYM-NEXT: ParameterHashIndex: 0x0 304; SYM-NEXT: TypeChkSectNum: 0x0 305; SYM-NEXT: SymbolAlignmentLog2: 0 306; SYM-NEXT: SymbolType: XTY_LD (0x2) 307; SYM-NEXT: StorageMappingClass: XMC_PR (0x0) 308; SYM-NEXT: StabInfoIndex: 0x0 309; SYM-NEXT: StabSectNum: 0x0 310; SYM-NEXT: } 311; SYM-NEXT: } 312; SYM-NEXT: Symbol { 313; SYM-NEXT: Index: [[#NFA+9]] 314; SYM-NEXT: Name: .loadsTWInit 315; SYM-NEXT: Value (RelocatableAddress): 0x40 316; SYM-NEXT: Section: .text 317; SYM-NEXT: Type: 0x0 318; SYM-NEXT: StorageClass: C_EXT (0x2) 319; SYM-NEXT: NumberOfAuxEntries: 1 320; SYM-NEXT: CSECT Auxiliary Entry { 321; SYM-NEXT: Index: [[#NFA+10]] 322; SYM-NEXT: ContainingCsectSymbolIndex: [[#NFA+5]] 323; SYM-NEXT: ParameterHashIndex: 0x0 324; SYM-NEXT: TypeChkSectNum: 0x0 325; SYM-NEXT: SymbolAlignmentLog2: 0 326; SYM-NEXT: SymbolType: XTY_LD (0x2) 327; SYM-NEXT: StorageMappingClass: XMC_PR (0x0) 328; SYM-NEXT: StabInfoIndex: 0x0 329; SYM-NEXT: StabSectNum: 0x0 330; SYM-NEXT: } 331; SYM-NEXT: } 332; SYM-NEXT: Symbol { 333; SYM-NEXT: Index: [[#NFA+11]] 334; SYM-NEXT: Name: GInit 335; SYM-NEXT: Value (RelocatableAddress): 0x88 336; SYM-NEXT: Section: .data 337; SYM-NEXT: Type: 0x0 338; SYM-NEXT: StorageClass: C_EXT (0x2) 339; SYM-NEXT: NumberOfAuxEntries: 1 340; SYM-NEXT: CSECT Auxiliary Entry { 341; SYM-NEXT: Index: [[#NFA+12]] 342; SYM-NEXT: SectionLen: 8 343; SYM-NEXT: ParameterHashIndex: 0x0 344; SYM-NEXT: TypeChkSectNum: 0x0 345; SYM-NEXT: SymbolAlignmentLog2: 3 346; SYM-NEXT: SymbolType: XTY_SD (0x1) 347; SYM-NEXT: StorageMappingClass: XMC_RW (0x5) 348; SYM-NEXT: StabInfoIndex: 0x0 349; SYM-NEXT: StabSectNum: 0x0 350; SYM-NEXT: } 351; SYM-NEXT: } 352; SYM-NEXT: Symbol { 353; SYM-NEXT: Index: [[#NFA+13]] 354; SYM-NEXT: Name: storesTIInit 355; SYM-NEXT: Value (RelocatableAddress): 0x90 356; SYM-NEXT: Section: .data 357; SYM-NEXT: Type: 0x0 358; SYM-NEXT: StorageClass: C_EXT (0x2) 359; SYM-NEXT: NumberOfAuxEntries: 1 360; SYM-NEXT: CSECT Auxiliary Entry { 361; SYM-NEXT: Index: [[#NFA+14]] 362; SYM-NEXT: SectionLen: 12 363; SYM-NEXT: ParameterHashIndex: 0x0 364; SYM-NEXT: TypeChkSectNum: 0x0 365; SYM-NEXT: SymbolAlignmentLog2: 2 366; SYM-NEXT: SymbolType: XTY_SD (0x1) 367; SYM-NEXT: StorageMappingClass: XMC_DS (0xA) 368; SYM-NEXT: StabInfoIndex: 0x0 369; SYM-NEXT: StabSectNum: 0x0 370; SYM-NEXT: } 371; SYM-NEXT: } 372; SYM-NEXT: Symbol { 373; SYM-NEXT: Index: [[#NFA+15]] 374; SYM-NEXT: Name: loadsTWInit 375; SYM-NEXT: Value (RelocatableAddress): 0x9C 376; SYM-NEXT: Section: .data 377; SYM-NEXT: Type: 0x0 378; SYM-NEXT: StorageClass: C_EXT (0x2) 379; SYM-NEXT: NumberOfAuxEntries: 1 380; SYM-NEXT: CSECT Auxiliary Entry { 381; SYM-NEXT: Index: [[#NFA+16]] 382; SYM-NEXT: SectionLen: 12 383; SYM-NEXT: ParameterHashIndex: 0x0 384; SYM-NEXT: TypeChkSectNum: 0x0 385; SYM-NEXT: SymbolAlignmentLog2: 2 386; SYM-NEXT: SymbolType: XTY_SD (0x1) 387; SYM-NEXT: StorageMappingClass: XMC_DS (0xA) 388; SYM-NEXT: StabInfoIndex: 0x0 389; SYM-NEXT: StabSectNum: 0x0 390; SYM-NEXT: } 391; SYM-NEXT: } 392; SYM-NEXT: Symbol { 393; SYM-NEXT: Index: [[#NFA+17]] 394; SYM-NEXT: Name: TOC 395; SYM-NEXT: Value (RelocatableAddress): 0xA8 396; SYM-NEXT: Section: .data 397; SYM-NEXT: Type: 0x0 398; SYM-NEXT: StorageClass: C_HIDEXT (0x6B) 399; SYM-NEXT: NumberOfAuxEntries: 1 400; SYM-NEXT: CSECT Auxiliary Entry { 401; SYM-NEXT: Index: [[#NFA+18]] 402; SYM-NEXT: SectionLen: 0 403; SYM-NEXT: ParameterHashIndex: 0x0 404; SYM-NEXT: TypeChkSectNum: 0x0 405; SYM-NEXT: SymbolAlignmentLog2: 2 406; SYM-NEXT: SymbolType: XTY_SD (0x1) 407; SYM-NEXT: StorageMappingClass: XMC_TC0 (0xF) 408; SYM-NEXT: StabInfoIndex: 0x0 409; SYM-NEXT: StabSectNum: 0x0 410; SYM-NEXT: } 411; SYM-NEXT: } 412; SYM-NEXT: Symbol { 413; SYM-NEXT: Index: [[#NFA+19]] 414; SYM-NEXT: Name: TIInit 415; SYM-NEXT: Value (RelocatableAddress): 0xA8 416; SYM-NEXT: Section: .data 417; SYM-NEXT: Type: 0x0 418; SYM-NEXT: StorageClass: C_HIDEXT (0x6B) 419; SYM-NEXT: NumberOfAuxEntries: 1 420; SYM-NEXT: CSECT Auxiliary Entry { 421; SYM-NEXT: Index: [[#NFA+20]] 422; SYM-NEXT: SectionLen: 4 423; SYM-NEXT: ParameterHashIndex: 0x0 424; SYM-NEXT: TypeChkSectNum: 0x0 425; SYM-NEXT: SymbolAlignmentLog2: 2 426; SYM-NEXT: SymbolType: XTY_SD (0x1) 427; SYM-NEXT: StorageMappingClass: XMC_TE (0x16) 428; SYM-NEXT: StabInfoIndex: 0x0 429; SYM-NEXT: StabSectNum: 0x0 430; SYM-NEXT: } 431; SYM-NEXT: } 432; SYM-NEXT: Symbol { 433; SYM-NEXT: Index: [[#NFA+21]] 434; SYM-NEXT: Name: _$TLSML 435; SYM-NEXT: Value (RelocatableAddress): 0xAC 436; SYM-NEXT: Section: .data 437; SYM-NEXT: Type: 0x0 438; SYM-NEXT: StorageClass: C_HIDEXT (0x6B) 439; SYM-NEXT: NumberOfAuxEntries: 1 440; SYM-NEXT: CSECT Auxiliary Entry { 441; SYM-NEXT: Index: [[#NFA+22]] 442; SYM-NEXT: SectionLen: 4 443; SYM-NEXT: ParameterHashIndex: 0x0 444; SYM-NEXT: TypeChkSectNum: 0x0 445; SYM-NEXT: SymbolAlignmentLog2: 2 446; SYM-NEXT: SymbolType: XTY_SD (0x1) 447; SYM-NEXT: StorageMappingClass: XMC_TC (0x3) 448; SYM-NEXT: StabInfoIndex: 0x0 449; SYM-NEXT: StabSectNum: 0x0 450; SYM-NEXT: } 451; SYM-NEXT: } 452; SYM-NEXT: Symbol { 453; SYM-NEXT: Index: [[#NFA+23]] 454; SYM-NEXT: Name: .TWInit 455; SYM-NEXT: Value (RelocatableAddress): 0xB0 456; SYM-NEXT: Section: .data 457; SYM-NEXT: Type: 0x0 458; SYM-NEXT: StorageClass: C_HIDEXT (0x6B) 459; SYM-NEXT: NumberOfAuxEntries: 1 460; SYM-NEXT: CSECT Auxiliary Entry { 461; SYM-NEXT: Index: [[#NFA+24]] 462; SYM-NEXT: SectionLen: 4 463; SYM-NEXT: ParameterHashIndex: 0x0 464; SYM-NEXT: TypeChkSectNum: 0x0 465; SYM-NEXT: SymbolAlignmentLog2: 2 466; SYM-NEXT: SymbolType: XTY_SD (0x1) 467; SYM-NEXT: StorageMappingClass: XMC_TE (0x16) 468; SYM-NEXT: StabInfoIndex: 0x0 469; SYM-NEXT: StabSectNum: 0x0 470; SYM-NEXT: } 471; SYM-NEXT: } 472; SYM-NEXT: Symbol { 473; SYM-NEXT: Index: [[#NFA+25]] 474; SYM-NEXT: Name: TWInit 475; SYM-NEXT: Value (RelocatableAddress): 0xB4 476; SYM-NEXT: Section: .data 477; SYM-NEXT: Type: 0x0 478; SYM-NEXT: StorageClass: C_HIDEXT (0x6B) 479; SYM-NEXT: NumberOfAuxEntries: 1 480; SYM-NEXT: CSECT Auxiliary Entry { 481; SYM-NEXT: Index: [[#NFA+26]] 482; SYM-NEXT: SectionLen: 4 483; SYM-NEXT: ParameterHashIndex: 0x0 484; SYM-NEXT: TypeChkSectNum: 0x0 485; SYM-NEXT: SymbolAlignmentLog2: 2 486; SYM-NEXT: SymbolType: XTY_SD (0x1) 487; SYM-NEXT: StorageMappingClass: XMC_TE (0x16) 488; SYM-NEXT: StabInfoIndex: 0x0 489; SYM-NEXT: StabSectNum: 0x0 490; SYM-NEXT: } 491; SYM-NEXT: } 492; SYM-NEXT: Symbol { 493; SYM-NEXT: Index: [[#NFA+27]] 494; SYM-NEXT: Name: GInit 495; SYM-NEXT: Value (RelocatableAddress): 0xB8 496; SYM-NEXT: Section: .data 497; SYM-NEXT: Type: 0x0 498; SYM-NEXT: StorageClass: C_HIDEXT (0x6B) 499; SYM-NEXT: NumberOfAuxEntries: 1 500; SYM-NEXT: CSECT Auxiliary Entry { 501; SYM-NEXT: Index: [[#NFA+28]] 502; SYM-NEXT: SectionLen: 4 503; SYM-NEXT: ParameterHashIndex: 0x0 504; SYM-NEXT: TypeChkSectNum: 0x0 505; SYM-NEXT: SymbolAlignmentLog2: 2 506; SYM-NEXT: SymbolType: XTY_SD (0x1) 507; SYM-NEXT: StorageMappingClass: XMC_TE (0x16) 508; SYM-NEXT: StabInfoIndex: 0x0 509; SYM-NEXT: StabSectNum: 0x0 510; SYM-NEXT: } 511; SYM-NEXT: } 512; SYM-NEXT: Symbol { 513; SYM-NEXT: Index: [[#NFA+29]] 514; SYM-NEXT: Name: TIInit 515; SYM-NEXT: Value (RelocatableAddress): 0x0 516; SYM-NEXT: Section: .tdata 517; SYM-NEXT: Type: 0x0 518; SYM-NEXT: StorageClass: C_HIDEXT (0x6B) 519; SYM-NEXT: NumberOfAuxEntries: 1 520; SYM-NEXT: CSECT Auxiliary Entry { 521; SYM-NEXT: Index: [[#NFA+30]] 522; SYM-NEXT: SectionLen: 8 523; SYM-NEXT: ParameterHashIndex: 0x0 524; SYM-NEXT: TypeChkSectNum: 0x0 525; SYM-NEXT: SymbolAlignmentLog2: 3 526; SYM-NEXT: SymbolType: XTY_SD (0x1) 527; SYM-NEXT: StorageMappingClass: XMC_TL (0x14) 528; SYM-NEXT: StabInfoIndex: 0x0 529; SYM-NEXT: StabSectNum: 0x0 530; SYM-NEXT: } 531; SYM-NEXT: } 532; SYM-NEXT: Symbol { 533; SYM-NEXT: Index: [[#NFA+31]] 534; SYM-NEXT: Name: TWInit 535; SYM-NEXT: Value (RelocatableAddress): 0x8 536; SYM-NEXT: Section: .tdata 537; SYM-NEXT: Type: 0x0 538; SYM-NEXT: StorageClass: C_WEAKEXT (0x6F) 539; SYM-NEXT: NumberOfAuxEntries: 1 540; SYM-NEXT: CSECT Auxiliary Entry { 541; SYM-NEXT: Index: [[#NFA+32]] 542; SYM-NEXT: SectionLen: 8 543; SYM-NEXT: ParameterHashIndex: 0x0 544; SYM-NEXT: TypeChkSectNum: 0x0 545; SYM-NEXT: SymbolAlignmentLog2: 3 546; SYM-NEXT: SymbolType: XTY_SD (0x1) 547; SYM-NEXT: StorageMappingClass: XMC_TL (0x14) 548; SYM-NEXT: StabInfoIndex: 0x0 549; SYM-NEXT: StabSectNum: 0x0 550; SYM-NEXT: } 551; SYM-NEXT: } 552; SYM-NEXT: ] 553 554; DIS: file format aixcoff-rs6000 555; DIS: Disassembly of section .text: 556; DIS: 00000000 (idx: [[#INDX:]]) .storesTIInit: 557; DIS-NEXT: mflr 0 558; DIS-NEXT: stwu 1, -32(1) 559; DIS-NEXT: stw 0, 40(1) 560; DIS-NEXT: mr 7, 3 561; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} addis 8, 2, 0 562; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOCU (idx: [[#NFA+19]]) TIInit[TE] 563; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} addis 3, 2, 0 564; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOCU (idx: [[#NFA+21]]) _$TLSML[TC] 565; DIS-NEXT: mr 6, 4 566; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} lwz 3, 4(3) 567; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOCL (idx: [[#NFA+21]]) _$TLSML[TC] 568; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} bla 0x0 569; DIS-NEXT: {{0*}}[[#ADDR]]: R_RBA (idx: [[#NFA+1]]) .__tls_get_mod[PR] 570; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} lwz 4, 0(8) 571; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOCL (idx: [[#NFA+19]]) TIInit[TE] 572; DIS-NEXT: stwux 7, 3, 4 573; DIS-NEXT: stw 6, 4(3) 574; DIS-NEXT: addi 1, 1, 32 575; DIS-NEXT: lwz 0, 8(1) 576; DIS-NEXT: mtlr 0 577; DIS-NEXT: blr 578; DIS: 00000040 (idx: [[#INDX+2]]) .loadsTWInit: 579; DIS-NEXT: mflr 0 580; DIS-NEXT: stwu 1, -32(1) 581; DIS-NEXT: stw 0, 40(1) 582; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} addis 3, 2, 0 583; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOCU (idx: [[#NFA+23]]) .TWInit[TE] 584; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} addis 4, 2, 0 585; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOCU (idx: [[#NFA+25]]) TWInit[TE] 586; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} lwz 3, 8(3) 587; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOCL (idx: [[#NFA+23]]) .TWInit[TE] 588; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} lwz 4, 12(4) 589; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOCL (idx: [[#NFA+25]]) TWInit[TE] 590; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} bla 0 591; DIS-NEXT: {{0*}}[[#ADDR]]: R_RBA (idx: [[#NFA+3]]) .__tls_get_addr[PR] 592; DIS-NEXT: lfd 0, 0(3) 593; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} addis 3, 2, 0 594; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOCU (idx: [[#NFA+27]]) GInit[TE] 595; DIS-NEXT: [[#%x, ADDR:]]: {{.*}} lwz 3, 16(3) 596; DIS-NEXT: {{0*}}[[#ADDR + 2]]: R_TOCL (idx: [[#NFA+27]]) GInit[TE] 597; DIS-NEXT: lfd 1, 0(3) 598; DIS-NEXT: fadd 1, 0, 1 599; DIS-NEXT: addi 1, 1, 32 600; DIS-NEXT: lwz 0, 8(1) 601; DIS-NEXT: mtlr 0 602; DIS-NEXT: blr 603 604; DIS: Disassembly of section .data: 605; DIS: 00000088 (idx: [[#NFA+11]]) GInit[RW]: 606; DIS-NEXT: 88: 3f f0 00 00 607; DIS-NEXT: 8c: 00 00 00 00 608; DIS: 00000090 (idx: [[#NFA+13]]) storesTIInit[DS]: 609; DIS-NEXT: 90: 00 00 00 00 610; DIS-NEXT: 00000090: R_POS (idx: [[#NFA+7]]) .storesTIInit 611; DIS-NEXT: 94: 00 00 00 a8 612; DIS-NEXT: 00000094: R_POS (idx: [[#NFA+17]]) TOC[TC0] 613; DIS-NEXT: 98: 00 00 00 00 614; DIS: 0000009c (idx: [[#NFA+15]]) loadsTWInit[DS]: 615; DIS-NEXT: 9c: 00 00 00 40 616; DIS-NEXT: 0000009c: R_POS (idx: [[#NFA+9]]) .loadsTWInit 617; DIS-NEXT: a0: 00 00 00 a8 618; DIS-NEXT: 000000a0: R_POS (idx: [[#NFA+17]]) TOC[TC0] 619; DIS-NEXT: a4: 00 00 00 00 620; DIS: 000000a8 (idx: [[#NFA+19]]) TIInit[TE]: 621; DIS-NEXT: a8: 00 00 00 00 622; DIS-NEXT: 000000a8: R_TLS_LD (idx: [[#NFA+29]]) TIInit[TL] 623; DIS: 000000ac (idx: [[#NFA+21]]) _$TLSML[TC]: 624; DIS-NEXT: ac: 00 00 00 00 625; DIS-NEXT: 000000ac: R_TLSML (idx: [[#NFA+21]]) _$TLSML[TC] 626; DIS: 000000b0 (idx: [[#NFA+23]]) .TWInit[TE]: 627; DIS-NEXT: b0: 00 00 00 00 628; DIS-NEXT: 000000b0: R_TLSM (idx: [[#NFA+31]]) TWInit[TL] 629; DIS: 000000b4 (idx: [[#NFA+25]]) TWInit[TE]: 630; DIS-NEXT: b4: 00 00 00 08 631; DIS-NEXT: 000000b4: R_TLS (idx: [[#NFA+31]]) TWInit[TL] 632; DIS: 000000b8 (idx: [[#NFA+27]]) GInit[TE]: 633; DIS-NEXT: b8: 00 00 00 88 634; DIS-NEXT: 000000b8: R_POS (idx: [[#NFA+11]]) GInit[RW] 635 636; DIS: Disassembly of section .tdata: 637; DIS: 00000000 (idx: [[#NFA+29]]) TIInit[TL]: 638; DIS-NEXT: 0: 00 00 00 00 639; DIS-NEXT: 4: 00 00 00 01 640; DIS: 00000008 (idx: [[#NFA+31]]) TWInit[TL]: 641; DIS-NEXT: 8: 3f f0 00 00 642; DIS-NEXT: c: 00 00 00 00 643 644attributes #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" } 645attributes #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" } 646