| ; This file tests the codegen of tls variables in AIX XCOFF object files |
| |
| ; RUN: llc -mtriple powerpc-ibm-aix-xcoff -filetype=obj -o %t.o < %s |
| ; RUN: llvm-readobj --section-headers %t.o | FileCheck --check-prefix=SECTION %s |
| ; RUN: llvm-readobj --syms %t.o | FileCheck --check-prefixes=SYMS,SYMS-DATASECT %s |
| ; RUN: llvm-objdump -D --symbol-description %t.o | FileCheck --check-prefixes=OBJDUMP-DATASECT %s |
| |
| ; RUN: llc -mtriple powerpc-ibm-aix-xcoff -data-sections=false -filetype=obj -o %t.o < %s |
| ; RUN: llvm-readobj --section-headers %t.o | FileCheck --check-prefix=SECTION %s |
| ; RUN: llvm-readobj --syms %t.o | FileCheck --check-prefixes=SYMS,SYMS-NODATASECT %s |
| ; RUN: llvm-objdump -D --symbol-description %t.o | FileCheck --check-prefixes=OBJDUMP-NODATASECT %s |
| |
| ; RUN: not --crash llc -mtriple powerpc64-ibm-aix-xcoff -filetype=obj < %s 2>&1 | FileCheck --check-prefix=XCOFF64 %s |
| ; XCOFF64: LLVM ERROR: 64-bit XCOFF object files are not supported yet. |
| |
| ; SECTION: File: {{.*}}aix-tls-xcoff-variables.ll.tmp.o |
| ; SECTION-NEXT: Format: aixcoff-rs6000 |
| ; SECTION-NEXT: Arch: powerpc |
| ; SECTION-NEXT: AddressSize: 32bit |
| ; SECTION-NEXT: Sections [ |
| ; SECTION-NEXT: Section { |
| ; SECTION-NEXT: Index: 1 |
| ; SECTION-NEXT: Name: .text |
| ; SECTION-NEXT: PhysicalAddress: 0x0 |
| ; SECTION-NEXT: VirtualAddress: 0x0 |
| ; SECTION-NEXT: Size: 0x4 |
| ; SECTION-NEXT: RawDataOffset: 0x8C |
| ; SECTION-NEXT: RelocationPointer: 0x0 |
| ; SECTION-NEXT: LineNumberPointer: 0x0 |
| ; SECTION-NEXT: NumberOfRelocations: 0 |
| ; SECTION-NEXT: NumberOfLineNumbers: 0 |
| ; SECTION-NEXT: Type: STYP_TEXT (0x20) |
| ; SECTION-NEXT: } |
| ; SECTION-NEXT: Section { |
| ; SECTION-NEXT: Index: 2 |
| ; SECTION-NEXT: Name: .tdata |
| ; SECTION-NEXT: PhysicalAddress: 0x0 |
| ; SECTION-NEXT: VirtualAddress: 0x0 |
| ; SECTION-NEXT: Size: 0x30 |
| ; SECTION-NEXT: RawDataOffset: 0x90 |
| ; SECTION-NEXT: RelocationPointer: 0x0 |
| ; SECTION-NEXT: LineNumberPointer: 0x0 |
| ; SECTION-NEXT: NumberOfRelocations: 0 |
| ; SECTION-NEXT: NumberOfLineNumbers: 0 |
| ; SECTION-NEXT: Type: STYP_TDATA (0x400) |
| ; SECTION-NEXT: } |
| ; SECTION-NEXT: Section { |
| ; SECTION-NEXT: Index: 3 |
| ; SECTION-NEXT: Name: .tbss |
| ; SECTION-NEXT: PhysicalAddress: 0x30 |
| ; SECTION-NEXT: VirtualAddress: 0x30 |
| ; SECTION-NEXT: Size: 0x18 |
| ; SECTION-NEXT: RawDataOffset: 0x0 |
| ; SECTION-NEXT: RelocationPointer: 0x0 |
| ; SECTION-NEXT: LineNumberPointer: 0x0 |
| ; SECTION-NEXT: NumberOfRelocations: 0 |
| ; SECTION-NEXT: NumberOfLineNumbers: 0 |
| ; SECTION-NEXT: Type: STYP_TBSS (0x800) |
| ; SECTION-NEXT: } |
| ; SECTION-NEXT: ] |
| |
| |
| ; SYMS: File: {{.*}}aix-tls-xcoff-variables.ll.tmp.o |
| ; SYMS-NEXT: Format: aixcoff-rs6000 |
| ; SYMS-NEXT: Arch: powerpc |
| ; SYMS-NEXT: AddressSize: 32bit |
| ; SYMS-NEXT: Symbols [ |
| ; SYMS-NEXT: Symbol { |
| ; SYMS-NEXT: Index: 0 |
| ; SYMS-NEXT: Name: .file |
| ; SYMS-NEXT: Value (SymbolTableIndex): 0x0 |
| ; SYMS-NEXT: Section: N_DEBUG |
| ; SYMS-NEXT: Source Language ID: TB_C (0x0) |
| ; SYMS-NEXT: CPU Version ID: 0x0 |
| ; SYMS-NEXT: StorageClass: C_FILE (0x67) |
| ; SYMS-NEXT: NumberOfAuxEntries: 0 |
| ; SYMS-NEXT: } |
| ; SYMS-NEXT: Symbol { |
| ; SYMS-NEXT: Index: [[#INDX:]] |
| ; SYMS-NEXT: Name: tls_global_int_external_uninitialized |
| ; SYMS-NEXT: Value (RelocatableAddress): 0x0 |
| ; SYMS-NEXT: Section: N_UNDEF |
| ; SYMS-NEXT: Type: 0x0 |
| ; SYMS-NEXT: StorageClass: C_EXT (0x2) |
| ; SYMS-NEXT: NumberOfAuxEntries: 1 |
| ; SYMS-NEXT: CSECT Auxiliary Entry { |
| ; SYMS-NEXT: Index: [[#INDX+1]] |
| ; SYMS-NEXT: SectionLen: 0 |
| ; SYMS-NEXT: ParameterHashIndex: 0x0 |
| ; SYMS-NEXT: TypeChkSectNum: 0x0 |
| ; SYMS-NEXT: SymbolAlignmentLog2: 0 |
| ; SYMS-NEXT: SymbolType: XTY_ER (0x0) |
| ; SYMS-NEXT: StorageMappingClass: XMC_UL (0x15) |
| ; SYMS-NEXT: StabInfoIndex: 0x0 |
| ; SYMS-NEXT: StabSectNum: 0x0 |
| ; SYMS-NEXT: } |
| ; SYMS-NEXT: } |
| ; SYMS-NEXT: Symbol { |
| ; SYMS-NEXT: Index: [[#INDX+2]] |
| ; SYMS-NEXT: Name: tls_global_double_external_uninitialized |
| ; SYMS-NEXT: Value (RelocatableAddress): 0x0 |
| ; SYMS-NEXT: Section: N_UNDEF |
| ; SYMS-NEXT: Type: 0x0 |
| ; SYMS-NEXT: StorageClass: C_EXT (0x2) |
| ; SYMS-NEXT: NumberOfAuxEntries: 1 |
| ; SYMS-NEXT: CSECT Auxiliary Entry { |
| ; SYMS-NEXT: Index: [[#INDX+3]] |
| ; SYMS-NEXT: SectionLen: 0 |
| ; SYMS-NEXT: ParameterHashIndex: 0x0 |
| ; SYMS-NEXT: TypeChkSectNum: 0x0 |
| ; SYMS-NEXT: SymbolAlignmentLog2: 0 |
| ; SYMS-NEXT: SymbolType: XTY_ER (0x0) |
| ; SYMS-NEXT: StorageMappingClass: XMC_UL (0x15) |
| ; SYMS-NEXT: StabInfoIndex: 0x0 |
| ; SYMS-NEXT: StabSectNum: 0x0 |
| ; SYMS-NEXT: } |
| ; SYMS-NEXT: } |
| |
| ; SYMS-NEXT: Symbol { |
| ; SYMS-NEXT: Index: [[#INDX+4]] |
| ; SYMS-NEXT: Name: .text |
| ; SYMS-NEXT: Value (RelocatableAddress): 0x0 |
| ; SYMS-NEXT: Section: .text |
| ; SYMS-NEXT: Type: 0x0 |
| ; SYMS-NEXT: StorageClass: C_HIDEXT (0x6B) |
| ; SYMS-NEXT: NumberOfAuxEntries: 1 |
| ; SYMS-NEXT: CSECT Auxiliary Entry { |
| ; SYMS-NEXT: Index: [[#INDX+5]] |
| ; SYMS-NEXT: SectionLen: 0 |
| ; SYMS-NEXT: ParameterHashIndex: 0x0 |
| ; SYMS-NEXT: TypeChkSectNum: 0x0 |
| ; SYMS-NEXT: SymbolAlignmentLog2: 2 |
| ; SYMS-NEXT: SymbolType: XTY_SD (0x1) |
| ; SYMS-NEXT: StorageMappingClass: XMC_PR (0x0) |
| ; SYMS-NEXT: StabInfoIndex: 0x0 |
| ; SYMS-NEXT: StabSectNum: 0x0 |
| ; SYMS-NEXT: } |
| ; SYMS-NEXT: } |
| |
| ; SYMS-NODATASECT: Symbol { |
| ; SYMS-NODATASECT-NEXT: Index: [[#INDX+6]] |
| ; SYMS-NODATASECT-NEXT: Name: .rodata |
| ; SYMS-NODATASECT-NEXT: Value (RelocatableAddress): 0x0 |
| ; SYMS-NODATASECT-NEXT: Section: .text |
| ; SYMS-NODATASECT-NEXT: Type: 0x0 |
| ; SYMS-NODATASECT-NEXT: StorageClass: C_HIDEXT (0x6B) |
| ; SYMS-NODATASECT-NEXT: NumberOfAuxEntries: 1 |
| ; SYMS-NODATASECT-NEXT: CSECT Auxiliary Entry { |
| ; SYMS-NODATASECT-NEXT: Index: [[#INDX+7]] |
| ; SYMS-NODATASECT-NEXT: SectionLen: 4 |
| ; SYMS-NODATASECT-NEXT: ParameterHashIndex: 0x0 |
| ; SYMS-NODATASECT-NEXT: TypeChkSectNum: 0x0 |
| ; SYMS-NODATASECT-NEXT: SymbolAlignmentLog2: 2 |
| ; SYMS-NODATASECT-NEXT: SymbolType: XTY_SD (0x1) |
| ; SYMS-NODATASECT-NEXT: StorageMappingClass: XMC_RO (0x1) |
| ; SYMS-NODATASECT-NEXT: StabInfoIndex: 0x0 |
| ; SYMS-NODATASECT-NEXT: StabSectNum: 0x0 |
| ; SYMS-NODATASECT-NEXT: } |
| ; SYMS-NODATASECT-NEXT: } |
| |
| ; SYMS: Symbol { |
| ; SYMS-DATASECT: Index: [[#INDX+6]] |
| ; SYMS-NODATASECT: Index: [[#INDX+8]] |
| ; SYMS-NEXT: Name: const_ivar |
| ; SYMS-NEXT: Value (RelocatableAddress): 0x0 |
| ; SYMS-NEXT: Section: .text |
| ; SYMS-NEXT: Type: 0x0 |
| ; SYMS-NEXT: StorageClass: C_EXT (0x2) |
| ; SYMS-NEXT: NumberOfAuxEntries: 1 |
| ; SYMS-NEXT: CSECT Auxiliary Entry { |
| ; SYMS-DATASECT: Index: [[#INDX+7]] |
| ; SYMS-DATASECT-NEXT: SectionLen: 4 |
| ; SYMS-NODATASECT: Index: [[#INDX+9]] |
| ; SYMS-NODATASECT-NEXT: ContainingCsectSymbolIndex: [[#INDX+6]] |
| ; SYMS: ParameterHashIndex: 0x0 |
| ; SYMS-NEXT: TypeChkSectNum: 0x0 |
| ; SYMS-DATASECT: SymbolAlignmentLog2: 2 |
| ; SYMS-DATASECT-NEXT: SymbolType: XTY_SD (0x1) |
| ; SYMS-NODATASECT: SymbolAlignmentLog2: 0 |
| ; SYMS-NODATASECT-NEXT: SymbolType: XTY_LD (0x2) |
| ; SYMS: StorageMappingClass: XMC_RO (0x1) |
| ; SYMS-NEXT: StabInfoIndex: 0x0 |
| ; SYMS-NEXT: StabSectNum: 0x0 |
| ; SYMS-NEXT: } |
| ; SYMS-NEXT: } |
| |
| ; SYMS-NODATASECT: Symbol { |
| ; SYMS-NODATASECT-NEXT: Index: [[#INDX+10]] |
| ; SYMS-NODATASECT-NEXT: Name: .tdata |
| ; SYMS-NODATASECT-NEXT: Value (RelocatableAddress): 0x0 |
| ; SYMS-NODATASECT-NEXT: Section: .tdata |
| ; SYMS-NODATASECT-NEXT: Type: 0x0 |
| ; SYMS-NODATASECT-NEXT: StorageClass: C_HIDEXT (0x6B) |
| ; SYMS-NODATASECT-NEXT: NumberOfAuxEntries: 1 |
| ; SYMS-NODATASECT-NEXT: CSECT Auxiliary Entry { |
| ; SYMS-NODATASECT-NEXT: Index: [[#INDX+11]] |
| ; SYMS-NODATASECT-NEXT: SectionLen: 48 |
| ; SYMS-NODATASECT-NEXT: ParameterHashIndex: 0x0 |
| ; SYMS-NODATASECT-NEXT: TypeChkSectNum: 0x0 |
| ; SYMS-NODATASECT-NEXT: SymbolAlignmentLog2: 3 |
| ; SYMS-NODATASECT-NEXT: SymbolType: XTY_SD (0x1) |
| ; SYMS-NODATASECT-NEXT: StorageMappingClass: XMC_TL (0x14) |
| ; SYMS-NODATASECT-NEXT: StabInfoIndex: 0x0 |
| ; SYMS-NODATASECT-NEXT: StabSectNum: 0x0 |
| ; SYMS-NODATASECT-NEXT: } |
| ; SYMS-NODATASECT-NEXT: } |
| |
| ; SYMS: Symbol { |
| ; SYMS-DATASECT: Index: [[#INDX+8]] |
| ; SYMS-NODATASECT: Index: [[#INDX+12]] |
| ; SYMS: Name: tls_global_int_external_val_initialized |
| ; SYMS-NEXT: Value (RelocatableAddress): 0x0 |
| ; SYMS-NEXT: Section: .tdata |
| ; SYMS-NEXT: Type: 0x0 |
| ; SYMS-NEXT: StorageClass: C_EXT (0x2) |
| ; SYMS-NEXT: NumberOfAuxEntries: 1 |
| ; SYMS-NEXT: CSECT Auxiliary Entry { |
| ; SYMS-DATASECT: Index: [[#INDX+9]] |
| ; SYMS-DATASECT-NEXT: SectionLen: 4 |
| ; SYMS-NODATASECT: Index: [[#INDX+13]] |
| ; SYMS-NODATASECT-NEXT: ContainingCsectSymbolIndex: [[#INDX+10]] |
| ; SYMS: ParameterHashIndex: 0x0 |
| ; SYMS-NEXT: TypeChkSectNum: 0x0 |
| ; SYMS-DATASECT: SymbolAlignmentLog2: 2 |
| ; SYMS-DATASECT-NEXT: SymbolType: XTY_SD (0x1) |
| ; SYMS-NODATASECT: SymbolAlignmentLog2: 0 |
| ; SYMS-NODATASECT-NEXT: SymbolType: XTY_LD (0x2) |
| ; SYMS: StorageMappingClass: XMC_TL (0x14) |
| ; SYMS-NEXT: StabInfoIndex: 0x0 |
| ; SYMS-NEXT: StabSectNum: 0x0 |
| ; SYMS-NEXT: } |
| ; SYMS-NEXT: } |
| |
| ; SYMS: Symbol { |
| ; SYMS-DATASECT: Index: [[#INDX+10]] |
| ; SYMS-NODATASECT: Index: [[#INDX+14]] |
| ; SYMS: Name: tls_global_alias_int_external_val_initialized |
| ; SYMS-NEXT: Value (RelocatableAddress): 0x0 |
| ; SYMS-NEXT: Section: .tdata |
| ; SYMS-NEXT: Type: 0x0 |
| ; SYMS-NEXT: StorageClass: C_EXT (0x2) |
| ; SYMS-NEXT: NumberOfAuxEntries: 1 |
| ; SYMS-NEXT: CSECT Auxiliary Entry { |
| ; SYMS-DATASECT: Index: [[#INDX+11]] |
| ; SYMS-DATASECT-NEXT: ContainingCsectSymbolIndex: [[#INDX+8]] |
| ; SYMS-NODATASECT: Index: [[#INDX+15]] |
| ; SYMS-NODATASECT-NEXT: ContainingCsectSymbolIndex: [[#INDX+10]] |
| ; SYMS: ParameterHashIndex: 0x0 |
| ; SYMS-NEXT: TypeChkSectNum: 0x0 |
| ; SYMS-NEXT: SymbolAlignmentLog2: 0 |
| ; SYMS-NEXT: SymbolType: XTY_LD (0x2) |
| ; SYMS-NEXT: StorageMappingClass: XMC_TL (0x14) |
| ; SYMS-NEXT: StabInfoIndex: 0x0 |
| ; SYMS-NEXT: StabSectNum: 0x0 |
| ; SYMS-NEXT: } |
| ; SYMS-NEXT: } |
| |
| ; SYMS: Symbol { |
| ; SYMS-DATASECT: Index: [[#INDX+12]] |
| ; SYMS-NODATASECT: Index: [[#INDX+16]] |
| ; SYMS: Name: tls_global_int_external_zero_initialized |
| ; SYMS-NEXT: Value (RelocatableAddress): 0x4 |
| ; SYMS-NEXT: Section: .tdata |
| ; SYMS-NEXT: Type: 0x0 |
| ; SYMS-NEXT: StorageClass: C_EXT (0x2) |
| ; SYMS-NEXT: NumberOfAuxEntries: 1 |
| ; SYMS-NEXT: CSECT Auxiliary Entry { |
| ; SYMS-DATASECT: Index: [[#INDX+13]] |
| ; SYMS-DATASECT-NEXT: SectionLen: 4 |
| ; SYMS-NODATASECT: Index: [[#INDX+17]] |
| ; SYMS-NODATASECT-NEXT: ContainingCsectSymbolIndex: [[#INDX+10]] |
| ; SYMS: ParameterHashIndex: 0x0 |
| ; SYMS-NEXT: TypeChkSectNum: 0x0 |
| ; SYMS-DATASECT: SymbolAlignmentLog2: 2 |
| ; SYMS-DATASECT-NEXT: SymbolType: XTY_SD (0x1) |
| ; SYMS-NODATASECT: SymbolAlignmentLog2: 0 |
| ; SYMS-NODATASECT-NEXT: SymbolType: XTY_LD (0x2) |
| ; SYMS: StorageMappingClass: XMC_TL (0x14) |
| ; SYMS-NEXT: StabInfoIndex: 0x0 |
| ; SYMS-NEXT: StabSectNum: 0x0 |
| ; SYMS-NEXT: } |
| ; SYMS-NEXT: } |
| |
| ; SYMS: Symbol { |
| ; SYMS-DATASECT: Index: [[#INDX+14]] |
| ; SYMS-NODATASECT: Index: [[#INDX+18]] |
| ; SYMS: Name: tls_global_int_local_val_initialized |
| ; SYMS-NEXT: Value (RelocatableAddress): 0x8 |
| ; SYMS-NEXT: Section: .tdata |
| ; SYMS-NEXT: Type: 0x0 |
| ; SYMS-NEXT: StorageClass: C_HIDEXT (0x6B) |
| ; SYMS-NEXT: NumberOfAuxEntries: 1 |
| ; SYMS-NEXT: CSECT Auxiliary Entry { |
| ; SYMS-DATASECT: Index: [[#INDX+15]] |
| ; SYMS-DATASECT-NEXT: SectionLen: 4 |
| ; SYMS-NODATASECT: Index: [[#INDX+19]] |
| ; SYMS-NODATASECT-NEXT: ContainingCsectSymbolIndex: [[#INDX+10]] |
| ; SYMS: ParameterHashIndex: 0x0 |
| ; SYMS-NEXT: TypeChkSectNum: 0x0 |
| ; SYMS-DATASECT: SymbolAlignmentLog2: 2 |
| ; SYMS-DATASECT-NEXT: SymbolType: XTY_SD (0x1) |
| ; SYMS-NODATASECT: SymbolAlignmentLog2: 0 |
| ; SYMS-NODATASECT-NEXT: SymbolType: XTY_LD (0x2) |
| ; SYMS: StorageMappingClass: XMC_TL (0x14) |
| ; SYMS-NEXT: StabInfoIndex: 0x0 |
| ; SYMS-NEXT: StabSectNum: 0x0 |
| ; SYMS-NEXT: } |
| ; SYMS-NEXT: } |
| |
| ; SYMS: Symbol { |
| ; SYMS-DATASECT: Index: [[#INDX+16]] |
| ; SYMS-NODATASECT: Index: [[#INDX+20]] |
| ; SYMS: Name: tls_global_int_weak_zero_initialized |
| ; SYMS-NEXT: Value (RelocatableAddress): 0xC |
| ; SYMS-NEXT: Section: .tdata |
| ; SYMS-NEXT: Type: 0x0 |
| ; SYMS-NEXT: StorageClass: C_WEAKEXT (0x6F) |
| ; SYMS-NEXT: NumberOfAuxEntries: 1 |
| ; SYMS-NEXT: CSECT Auxiliary Entry { |
| ; SYMS-DATASECT: Index: [[#INDX+17]] |
| ; SYMS-DATASECT-NEXT: SectionLen: 4 |
| ; SYMS-NODATASECT: Index: [[#INDX+21]] |
| ; SYMS-NODATASECT-NEXT: ContainingCsectSymbolIndex: [[#INDX+10]] |
| ; SYMS: ParameterHashIndex: 0x0 |
| ; SYMS-NEXT: TypeChkSectNum: 0x0 |
| ; SYMS-DATASECT: SymbolAlignmentLog2: 2 |
| ; SYMS-DATASECT-NEXT: SymbolType: XTY_SD (0x1) |
| ; SYMS-NODATASECT: SymbolAlignmentLog2: 0 |
| ; SYMS-NODATASECT-NEXT: SymbolType: XTY_LD (0x2) |
| ; SYMS: StorageMappingClass: XMC_TL (0x14) |
| ; SYMS-NEXT: StabInfoIndex: 0x0 |
| ; SYMS-NEXT: StabSectNum: 0x0 |
| ; SYMS-NEXT: } |
| ; SYMS-NEXT: } |
| |
| ; SYMS: Symbol { |
| ; SYMS-DATASECT: Index: [[#INDX+18]] |
| ; SYMS-NODATASECT: Index: [[#INDX+22]] |
| ; SYMS: Name: tls_global_int_weak_val_initialized |
| ; SYMS-NEXT: Value (RelocatableAddress): 0x10 |
| ; SYMS-NEXT: Section: .tdata |
| ; SYMS-NEXT: Type: 0x0 |
| ; SYMS-NEXT: StorageClass: C_WEAKEXT (0x6F) |
| ; SYMS-NEXT: NumberOfAuxEntries: 1 |
| ; SYMS-NEXT: CSECT Auxiliary Entry { |
| ; SYMS-DATASECT: Index: [[#INDX+19]] |
| ; SYMS-DATASECT-NEXT: SectionLen: 4 |
| ; SYMS-NODATASECT: Index: [[#INDX+23]] |
| ; SYMS-NODATASECT-NEXT: ContainingCsectSymbolIndex: [[#INDX+10]] |
| ; SYMS: ParameterHashIndex: 0x0 |
| ; SYMS-NEXT: TypeChkSectNum: 0x0 |
| ; SYMS-DATASECT: SymbolAlignmentLog2: 2 |
| ; SYMS-DATASECT-NEXT: SymbolType: XTY_SD (0x1) |
| ; SYMS-NODATASECT: SymbolAlignmentLog2: 0 |
| ; SYMS-NODATASECT-NEXT: SymbolType: XTY_LD (0x2) |
| ; SYMS: StorageMappingClass: XMC_TL (0x14) |
| ; SYMS-NEXT: StabInfoIndex: 0x0 |
| ; SYMS-NEXT: StabSectNum: 0x0 |
| ; SYMS-NEXT: } |
| ; SYMS-NEXT: } |
| |
| ; SYMS: Symbol { |
| ; SYMS-DATASECT: Index: [[#INDX+20]] |
| ; SYMS-NODATASECT: Index: [[#INDX+24]] |
| ; SYMS: Name: tls_global_long_long_internal_val_initialized |
| ; SYMS-NEXT: Value (RelocatableAddress): 0x18 |
| ; SYMS-NEXT: Section: .tdata |
| ; SYMS-NEXT: Type: 0x0 |
| ; SYMS-NEXT: StorageClass: C_HIDEXT (0x6B) |
| ; SYMS-NEXT: NumberOfAuxEntries: 1 |
| ; SYMS-NEXT: CSECT Auxiliary Entry { |
| ; SYMS-DATASECT: Index: [[#INDX+21]] |
| ; SYMS-DATASECT-NEXT: SectionLen: 8 |
| ; SYMS-NODATASECT: Index: [[#INDX+25]] |
| ; SYMS-NODATASECT-NEXT: ContainingCsectSymbolIndex: [[#INDX+10]] |
| ; SYMS: ParameterHashIndex: 0x0 |
| ; SYMS-NEXT: TypeChkSectNum: 0x0 |
| ; SYMS-DATASECT: SymbolAlignmentLog2: 3 |
| ; SYMS-DATASECT-NEXT: SymbolType: XTY_SD (0x1) |
| ; SYMS-NODATASECT: SymbolAlignmentLog2: 0 |
| ; SYMS-NODATASECT-NEXT: SymbolType: XTY_LD (0x2) |
| ; SYMS: StorageMappingClass: XMC_TL (0x14) |
| ; SYMS-NEXT: StabInfoIndex: 0x0 |
| ; SYMS-NEXT: StabSectNum: 0x0 |
| ; SYMS-NEXT: } |
| ; SYMS-NEXT: } |
| |
| ; SYMS: Symbol { |
| ; SYMS-DATASECT: Index: [[#INDX+22]] |
| ; SYMS-NODATASECT: Index: [[#INDX+26]] |
| ; SYMS: Name: tls_global_long_long_weak_val_initialized |
| ; SYMS-NEXT: Value (RelocatableAddress): 0x20 |
| ; SYMS-NEXT: Section: .tdata |
| ; SYMS-NEXT: Type: 0x0 |
| ; SYMS-NEXT: StorageClass: C_WEAKEXT (0x6F) |
| ; SYMS-NEXT: NumberOfAuxEntries: 1 |
| ; SYMS-NEXT: CSECT Auxiliary Entry { |
| ; SYMS-DATASECT: Index: [[#INDX+23]] |
| ; SYMS-DATASECT-NEXT: SectionLen: 8 |
| ; SYMS-NODATASECT: Index: [[#INDX+27]] |
| ; SYMS-NODATASECT-NEXT: ContainingCsectSymbolIndex: [[#INDX+10]] |
| ; SYMS: ParameterHashIndex: 0x0 |
| ; SYMS-NEXT: TypeChkSectNum: 0x0 |
| ; SYMS-DATASECT: SymbolAlignmentLog2: 3 |
| ; SYMS-DATASECT-NEXT: SymbolType: XTY_SD (0x1) |
| ; SYMS-NODATASECT: SymbolAlignmentLog2: 0 |
| ; SYMS-NODATASECT-NEXT: SymbolType: XTY_LD (0x2) |
| ; SYMS: StorageMappingClass: XMC_TL (0x14) |
| ; SYMS-NEXT: StabInfoIndex: 0x0 |
| ; SYMS-NEXT: StabSectNum: 0x0 |
| ; SYMS-NEXT: } |
| ; SYMS-NEXT: } |
| |
| ; SYMS: Symbol { |
| ; SYMS-DATASECT: Index: [[#INDX+24]] |
| ; SYMS-NODATASECT: Index: [[#INDX+28]] |
| ; SYMS: Name: tls_global_long_long_weak_zero_initialized |
| ; SYMS-NEXT: Value (RelocatableAddress): 0x28 |
| ; SYMS-NEXT: Section: .tdata |
| ; SYMS-NEXT: Type: 0x0 |
| ; SYMS-NEXT: StorageClass: C_WEAKEXT (0x6F) |
| ; SYMS-NEXT: NumberOfAuxEntries: 1 |
| ; SYMS-NEXT: CSECT Auxiliary Entry { |
| ; SYMS-DATASECT: Index: [[#INDX+25]] |
| ; SYMS-DATASECT-NEXT: SectionLen: 8 |
| ; SYMS-NODATASECT: Index: [[#INDX+29]] |
| ; SYMS-NODATASECT-NEXT: ContainingCsectSymbolIndex: [[#INDX+10]] |
| ; SYMS: ParameterHashIndex: 0x0 |
| ; SYMS-NEXT: TypeChkSectNum: 0x0 |
| ; SYMS-DATASECT: SymbolAlignmentLog2: 3 |
| ; SYMS-DATASECT-NEXT: SymbolType: XTY_SD (0x1) |
| ; SYMS-NODATASECT: SymbolAlignmentLog2: 0 |
| ; SYMS-NODATASECT-NEXT: SymbolType: XTY_LD (0x2) |
| ; SYMS: StorageMappingClass: XMC_TL (0x14) |
| ; SYMS-NEXT: StabInfoIndex: 0x0 |
| ; SYMS-NEXT: StabSectNum: 0x0 |
| ; SYMS-NEXT: } |
| ; SYMS-NEXT: } |
| |
| ; SYMS: Symbol { |
| ; SYMS-DATASECT: Index: [[#INDX+26]] |
| ; SYMS-NODATASECT: Index: [[#INDX+30]] |
| ; SYMS: Name: tls_global_int_local_zero_initialized |
| ; SYMS-NEXT: Value (RelocatableAddress): 0x30 |
| ; SYMS-NEXT: Section: .tbss |
| ; SYMS-NEXT: Type: 0x0 |
| ; SYMS-NEXT: StorageClass: C_HIDEXT (0x6B) |
| ; SYMS-NEXT: NumberOfAuxEntries: 1 |
| ; SYMS-NEXT: CSECT Auxiliary Entry { |
| ; SYMS-DATASECT: Index: [[#INDX+27]] |
| ; SYMS-NODATASECT: Index: [[#INDX+31]] |
| ; SYMS: SectionLen: 4 |
| ; SYMS-NEXT: ParameterHashIndex: 0x0 |
| ; SYMS-NEXT: TypeChkSectNum: 0x0 |
| ; SYMS-NEXT: SymbolAlignmentLog2: 2 |
| ; SYMS-NEXT: SymbolType: XTY_CM (0x3) |
| ; SYMS-NEXT: StorageMappingClass: XMC_UL (0x15) |
| ; SYMS-NEXT: StabInfoIndex: 0x0 |
| ; SYMS-NEXT: StabSectNum: 0x0 |
| ; SYMS-NEXT: } |
| ; SYMS-NEXT: } |
| |
| ; SYMS: Symbol { |
| ; SYMS-DATASECT: Index: [[#INDX+28]] |
| ; SYMS-NODATASECT: Index: [[#INDX+32]] |
| ; SYMS: Name: tls_global_int_common_zero_initialized |
| ; SYMS-NEXT: Value (RelocatableAddress): 0x34 |
| ; SYMS-NEXT: Section: .tbss |
| ; SYMS-NEXT: Type: 0x0 |
| ; SYMS-NEXT: StorageClass: C_EXT (0x2) |
| ; SYMS-NEXT: NumberOfAuxEntries: 1 |
| ; SYMS-NEXT: CSECT Auxiliary Entry { |
| ; SYMS-DATASECT: Index: [[#INDX+29]] |
| ; SYMS-NODATASECT: Index: [[#INDX+33]] |
| ; SYMS: SectionLen: 4 |
| ; SYMS-NEXT: ParameterHashIndex: 0x0 |
| ; SYMS-NEXT: TypeChkSectNum: 0x0 |
| ; SYMS-NEXT: SymbolAlignmentLog2: 2 |
| ; SYMS-NEXT: SymbolType: XTY_CM (0x3) |
| ; SYMS-NEXT: StorageMappingClass: XMC_UL (0x15) |
| ; SYMS-NEXT: StabInfoIndex: 0x0 |
| ; SYMS-NEXT: StabSectNum: 0x0 |
| ; SYMS-NEXT: } |
| ; SYMS-NEXT: } |
| |
| ; SYMS: Symbol { |
| ; SYMS-DATASECT: Index: [[#INDX+30]] |
| ; SYMS-NODATASECT: Index: [[#INDX+34]] |
| ; SYMS: Name: tls_global_double_common_zero_initialized |
| ; SYMS-NEXT: Value (RelocatableAddress): 0x38 |
| ; SYMS-NEXT: Section: .tbss |
| ; SYMS-NEXT: Type: 0x0 |
| ; SYMS-NEXT: StorageClass: C_EXT (0x2) |
| ; SYMS-NEXT: NumberOfAuxEntries: 1 |
| ; SYMS-NEXT: CSECT Auxiliary Entry { |
| ; SYMS-DATASECT: Index: [[#INDX+31]] |
| ; SYMS-NODATASECT: Index: [[#INDX+35]] |
| ; SYMS: SectionLen: 8 |
| ; SYMS-NEXT: ParameterHashIndex: 0x0 |
| ; SYMS-NEXT: TypeChkSectNum: 0x0 |
| ; SYMS-NEXT: SymbolAlignmentLog2: 3 |
| ; SYMS-NEXT: SymbolType: XTY_CM (0x3) |
| ; SYMS-NEXT: StorageMappingClass: XMC_UL (0x15) |
| ; SYMS-NEXT: StabInfoIndex: 0x0 |
| ; SYMS-NEXT: StabSectNum: 0x0 |
| ; SYMS-NEXT: } |
| ; SYMS-NEXT: } |
| |
| ; SYMS: Symbol { |
| ; SYMS-DATASECT: Index: [[#INDX+32]] |
| ; SYMS-NODATASECT: Index: [[#INDX+36]] |
| ; SYMS: Name: tls_global_long_long_internal_zero_initialized |
| ; SYMS-NEXT: Value (RelocatableAddress): 0x40 |
| ; SYMS-NEXT: Section: .tbss |
| ; SYMS-NEXT: Type: 0x0 |
| ; SYMS-NEXT: StorageClass: C_HIDEXT (0x6B) |
| ; SYMS-NEXT: NumberOfAuxEntries: 1 |
| ; SYMS-NEXT: CSECT Auxiliary Entry { |
| ; SYMS-DATASECT: Index: [[#INDX+33]] |
| ; SYMS-NODATASECT: Index: [[#INDX+37]] |
| ; SYMS: SectionLen: 8 |
| ; SYMS-NEXT: ParameterHashIndex: 0x0 |
| ; SYMS-NEXT: TypeChkSectNum: 0x0 |
| ; SYMS-NEXT: SymbolAlignmentLog2: 3 |
| ; SYMS-NEXT: SymbolType: XTY_CM (0x3) |
| ; SYMS-NEXT: StorageMappingClass: XMC_UL (0x15) |
| ; SYMS-NEXT: StabInfoIndex: 0x0 |
| ; SYMS-NEXT: StabSectNum: 0x0 |
| ; SYMS-NEXT: } |
| ; SYMS-NEXT: } |
| |
| |
| ; OBJDUMP-DATASECT: Disassembly of section .text: |
| ; OBJDUMP-DATASECT-EMPTY: |
| ; OBJDUMP-DATASECT-NEXT: 00000000 (idx: 7) const_ivar[RO]: |
| ; OBJDUMP-DATASECT-NEXT: 0: 00 00 00 06 <unknown> |
| ; OBJDUMP-DATASECT-EMPTY: |
| ; OBJDUMP-DATASECT-NEXT: Disassembly of section .tdata: |
| ; OBJDUMP-DATASECT-EMPTY: |
| ; OBJDUMP-DATASECT-NEXT: 00000000 (idx: 11) tls_global_alias_int_external_val_initialized: |
| ; OBJDUMP-DATASECT-NEXT: 0: 00 00 00 01 <unknown> |
| ; OBJDUMP-DATASECT-EMPTY: |
| ; OBJDUMP-DATASECT-NEXT: 00000004 (idx: 13) tls_global_int_external_zero_initialized[TL]: |
| ; OBJDUMP-DATASECT-NEXT: 4: 00 00 00 00 <unknown> |
| ; OBJDUMP-DATASECT-EMPTY: |
| ; OBJDUMP-DATASECT-NEXT: 00000008 (idx: 15) tls_global_int_local_val_initialized[TL]: |
| ; OBJDUMP-DATASECT-NEXT: 8: 00 00 00 02 <unknown> |
| ; OBJDUMP-DATASECT-EMPTY: |
| ; OBJDUMP-DATASECT-NEXT: 0000000c (idx: 17) tls_global_int_weak_zero_initialized[TL]: |
| ; OBJDUMP-DATASECT-NEXT: c: 00 00 00 00 <unknown> |
| ; OBJDUMP-DATASECT-EMPTY: |
| ; OBJDUMP-DATASECT-NEXT: 00000010 (idx: 19) tls_global_int_weak_val_initialized[TL]: |
| ; OBJDUMP-DATASECT-NEXT: 10: 00 00 00 01 <unknown> |
| ; OBJDUMP-DATASECT-NEXT: 14: 00 00 00 00 <unknown> |
| ; OBJDUMP-DATASECT-EMPTY: |
| ; OBJDUMP-DATASECT-NEXT: 00000018 (idx: 21) tls_global_long_long_internal_val_initialized[TL]: |
| ; OBJDUMP-DATASECT-NEXT: 18: 00 00 00 00 <unknown> |
| ; OBJDUMP-DATASECT-NEXT: 1c: 00 00 00 01 <unknown> |
| ; OBJDUMP-DATASECT-EMPTY: |
| ; OBJDUMP-DATASECT-NEXT: 00000020 (idx: 23) tls_global_long_long_weak_val_initialized[TL]: |
| ; OBJDUMP-DATASECT-NEXT: 20: 00 00 00 00 <unknown> |
| ; OBJDUMP-DATASECT-NEXT: 24: 00 00 00 01 <unknown> |
| ; OBJDUMP-DATASECT-EMPTY: |
| ; OBJDUMP-DATASECT-NEXT: 00000028 (idx: 25) tls_global_long_long_weak_zero_initialized[TL]: |
| ; OBJDUMP-DATASECT-NEXT: ... |
| ; OBJDUMP-DATASECT-EMPTY: |
| |
| ; OBJDUMP-DATASECT-NEXT: Disassembly of section .tbss: |
| ; OBJDUMP-DATASECT-EMPTY: |
| ; OBJDUMP-DATASECT-NEXT: 00000030 (idx: 27) tls_global_int_local_zero_initialized[UL]: |
| ; OBJDUMP-DATASECT-NEXT: ... |
| ; OBJDUMP-DATASECT-EMPTY: |
| ; OBJDUMP-DATASECT-NEXT: 00000034 (idx: 29) tls_global_int_common_zero_initialized[UL]: |
| ; OBJDUMP-DATASECT-NEXT: ... |
| ; OBJDUMP-DATASECT-EMPTY: |
| ; OBJDUMP-DATASECT-NEXT: 00000038 (idx: 31) tls_global_double_common_zero_initialized[UL] |
| ; OBJDUMP-DATASECT-NEXT: ... |
| ; OBJDUMP-DATASECT-EMPTY: |
| ; OBJDUMP-DATASECT-NEXT: 00000040 (idx: 33) tls_global_long_long_internal_zero_initialized[UL]: |
| ; OBJDUMP-DATASECT-NEXT: ... |
| |
| ; OBJDUMP-NODATASECT: Disassembly of section .text: |
| ; OBJDUMP-NODATASECT-EMPTY: |
| ; OBJDUMP-NODATASECT-NEXT: 00000000 (idx: 9) const_ivar: |
| ; OBJDUMP-NODATASECT-NEXT: 0: 00 00 00 06 <unknown> |
| ; OBJDUMP-NODATASECT-EMPTY: |
| ; OBJDUMP-NODATASECT-NEXT: Disassembly of section .tdata: |
| ; OBJDUMP-NODATASECT-EMPTY: |
| ; OBJDUMP-NODATASECT: 00000000 (idx: 13) tls_global_int_external_val_initialized: |
| ; OBJDUMP-NODATASECT-NEXT: 0: 00 00 00 01 <unknown> |
| ; OBJDUMP-NODATASECT-EMPTY: |
| ; OBJDUMP-NODATASECT-NEXT: 00000004 (idx: 17) tls_global_int_external_zero_initialized: |
| ; OBJDUMP-NODATASECT-NEXT: 4: 00 00 00 00 <unknown> |
| ; OBJDUMP-NODATASECT-EMPTY: |
| ; OBJDUMP-NODATASECT-NEXT: 00000008 (idx: 19) tls_global_int_local_val_initialized: |
| ; OBJDUMP-NODATASECT-NEXT: 8: 00 00 00 02 <unknown> |
| ; OBJDUMP-NODATASECT-EMPTY: |
| ; OBJDUMP-NODATASECT-NEXT: 0000000c (idx: 21) tls_global_int_weak_zero_initialized: |
| ; OBJDUMP-NODATASECT-NEXT: c: 00 00 00 00 <unknown> |
| ; OBJDUMP-NODATASECT-EMPTY: |
| ; OBJDUMP-NODATASECT-NEXT: 00000010 (idx: 23) tls_global_int_weak_val_initialized: |
| ; OBJDUMP-NODATASECT-NEXT: 10: 00 00 00 01 <unknown> |
| ; OBJDUMP-NODATASECT-NEXT: 14: 00 00 00 00 <unknown> |
| ; OBJDUMP-NODATASECT-EMPTY: |
| ; OBJDUMP-NODATASECT-NEXT: 00000018 (idx: 25) tls_global_long_long_internal_val_initialized: |
| ; OBJDUMP-NODATASECT-NEXT: 18: 00 00 00 00 <unknown> |
| ; OBJDUMP-NODATASECT-NEXT: 1c: 00 00 00 01 <unknown> |
| ; OBJDUMP-NODATASECT-EMPTY: |
| ; OBJDUMP-NODATASECT-NEXT: 00000020 (idx: 27) tls_global_long_long_weak_val_initialized: |
| ; OBJDUMP-NODATASECT-NEXT: 20: 00 00 00 00 <unknown> |
| ; OBJDUMP-NODATASECT-NEXT: 24: 00 00 00 01 <unknown> |
| ; OBJDUMP-NODATASECT-EMPTY: |
| ; OBJDUMP-NODATASECT-NEXT: 00000028 (idx: 29) tls_global_long_long_weak_zero_initialized: |
| ; OBJDUMP-NODATASECT-NEXT: ... |
| ; OBJDUMP-NODATASECT-EMPTY: |
| |
| ; OBJDUMP-NODATASECT-NEXT: Disassembly of section .tbss: |
| ; OBJDUMP-NODATASECT-EMPTY: |
| ; OBJDUMP-NODATASECT-NEXT: 00000030 (idx: 31) tls_global_int_local_zero_initialized[UL]: |
| ; OBJDUMP-NODATASECT-NEXT: ... |
| ; OBJDUMP-NODATASECT-EMPTY: |
| ; OBJDUMP-NODATASECT-NEXT: 00000034 (idx: 33) tls_global_int_common_zero_initialized[UL]: |
| ; OBJDUMP-NODATASECT-NEXT: ... |
| ; OBJDUMP-NODATASECT-EMPTY: |
| ; OBJDUMP-NODATASECT-NEXT: 00000038 (idx: 35) tls_global_double_common_zero_initialized[UL]: |
| ; OBJDUMP-NODATASECT-NEXT: ... |
| ; OBJDUMP-NODATASECT-EMPTY: |
| ; OBJDUMP-NODATASECT-NEXT: 00000040 (idx: 37) tls_global_long_long_internal_zero_initialized[UL]: |
| ; OBJDUMP-NODATASECT-NEXT: ... |
| |
| @tls_global_int_external_val_initialized = thread_local global i32 1, align 4 |
| @tls_global_int_external_zero_initialized = thread_local global i32 0, align 4 |
| @tls_global_int_local_val_initialized = internal thread_local global i32 2, align 4 |
| @tls_global_int_local_zero_initialized = internal thread_local global i32 0, align 4 |
| @tls_global_int_weak_zero_initialized = weak thread_local global i32 0, align 4 |
| @tls_global_int_common_zero_initialized = common thread_local global i32 0, align 4 |
| @tls_global_int_weak_val_initialized = weak thread_local global i32 1, align 4 |
| @tls_global_int_external_uninitialized = external thread_local global i32, align 4 |
| @tls_global_double_common_zero_initialized = common thread_local global double 0.000000e+00, align 8 |
| @tls_global_double_external_uninitialized = external thread_local global i64, align 8 |
| @tls_global_long_long_internal_val_initialized = internal thread_local global i64 1, align 8 |
| @tls_global_long_long_internal_zero_initialized = internal thread_local global i64 0, align 8 |
| @tls_global_long_long_weak_val_initialized = weak thread_local global i64 1, align 8 |
| @tls_global_long_long_weak_zero_initialized = weak thread_local global i64 0, align 8 |
| @tls_global_alias_int_external_val_initialized = thread_local alias i32, i32* @tls_global_int_external_val_initialized |
| @const_ivar = constant i32 6, align 4 |