forked from OSchip/llvm-project
[PowerPC][AIX] Adds support for writing the data section in object files
Adds support for generating the XCOFF data section in object files for global variables with initialization. Merged aix-xcoff-common.ll into aix-xcoff-data.ll. Changed variable name charr to chrarray in the test case to test if readobj works with 8-character names. Authored by: xingxue Reviewers: hubert.reinterptrtcast, sfertile, jasonliu, daltenty, Xiangling_L. Reviewed by: hubert.reinterpretcast, sfertile, daltenty. Subscribers: DiggerLin, Wuzish, nemanjai, hiraditya, MaskRay, jsji, shchenz, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D67125
This commit is contained in:
parent
3137fe4d23
commit
8bd0c97810
|
@ -158,15 +158,17 @@ class XCOFFObjectWriter : public MCObjectWriter {
|
|||
// the sections. Should have one for each set of csects that get mapped into
|
||||
// the same section and get handled in a 'similar' way.
|
||||
CsectGroup ProgramCodeCsects{CsectGroup::LabelDefSupported, {}};
|
||||
CsectGroup DataCsects{CsectGroup::LabelDefSupported, {}};
|
||||
CsectGroup BSSCsects{CsectGroup::LabelDefUnsupported, {}};
|
||||
|
||||
// The Predefined sections.
|
||||
Section Text;
|
||||
Section Data;
|
||||
Section BSS;
|
||||
|
||||
// All the XCOFF sections, in the order they will appear in the section header
|
||||
// table.
|
||||
std::array<Section *const, 2> Sections{{&Text, &BSS}};
|
||||
std::array<Section *const, 3> Sections{{&Text, &Data, &BSS}};
|
||||
|
||||
CsectGroup &getCsectGroup(const MCSectionXCOFF *MCSec);
|
||||
|
||||
|
@ -224,6 +226,8 @@ XCOFFObjectWriter::XCOFFObjectWriter(
|
|||
Strings(StringTableBuilder::XCOFF),
|
||||
Text(".text", XCOFF::STYP_TEXT, /* IsVirtual */ false,
|
||||
CsectGroups{&ProgramCodeCsects}),
|
||||
Data(".data", XCOFF::STYP_DATA, /* IsVirtual */ false,
|
||||
CsectGroups{&DataCsects}),
|
||||
BSS(".bss", XCOFF::STYP_BSS, /* IsVirtual */ true,
|
||||
CsectGroups{&BSSCsects}) {}
|
||||
|
||||
|
@ -251,6 +255,9 @@ CsectGroup &XCOFFObjectWriter::getCsectGroup(const MCSectionXCOFF *MCSec) {
|
|||
if (XCOFF::XTY_CM == MCSec->getCSectType())
|
||||
return BSSCsects;
|
||||
|
||||
if (XCOFF::XTY_SD == MCSec->getCSectType())
|
||||
return DataCsects;
|
||||
|
||||
report_fatal_error("Unhandled mapping of read-write csect to section.");
|
||||
case XCOFF::XMC_BS:
|
||||
assert(XCOFF::XTY_CM == MCSec->getCSectType() &&
|
||||
|
|
|
@ -1,221 +0,0 @@
|
|||
; RUN: llc -mtriple powerpc-ibm-aix-xcoff < %s | FileCheck %s
|
||||
|
||||
; RUN: llc -mtriple powerpc-ibm-aix-xcoff -filetype=obj -o %t.o < %s
|
||||
; RUN: llvm-readobj --section-headers --file-header %t.o | \
|
||||
; RUN: FileCheck --check-prefix=OBJ %s
|
||||
; RUN: llvm-readobj --syms %t.o | FileCheck --check-prefix=SYMS %s
|
||||
|
||||
; RUN: not llc -mtriple powerpc64-ibm-aix-xcoff -filetype=obj -o %t.o 2>&1 \
|
||||
; RUN: < %s | FileCheck --check-prefix=XCOFF64 %s
|
||||
|
||||
; XCOFF64: LLVM ERROR: 64-bit XCOFF object files are not supported yet.
|
||||
|
||||
@a = common global i32 0, align 4
|
||||
@b = common global i64 0, align 8
|
||||
@c = common global i16 0, align 2
|
||||
|
||||
@d = common local_unnamed_addr global double 0.000000e+00, align 8
|
||||
@f = common local_unnamed_addr global float 0.000000e+00, align 4
|
||||
|
||||
@over_aligned = common local_unnamed_addr global double 0.000000e+00, align 32
|
||||
|
||||
@array = common local_unnamed_addr global [33 x i8] zeroinitializer, align 1
|
||||
|
||||
; CHECK-NOT: .toc
|
||||
|
||||
; CHECK: .csect .text[PR]
|
||||
; CHECK-NEXT: .file
|
||||
; CHECK-NEXT: .comm a,4,2
|
||||
; CHECK-NEXT: .comm b,8,3
|
||||
; CHECK-NEXT: .comm c,2,1
|
||||
; CHECK-NEXT: .comm d,8,3
|
||||
; CHECK-NEXT: .comm f,4,2
|
||||
; CHECK-NEXT: .comm over_aligned,8,5
|
||||
; CHECK-NEXT: .comm array,33,0
|
||||
|
||||
; OBJ: File: {{.*}}aix-xcoff-common.ll.tmp.o
|
||||
; OBJ-NEXT: Format: aixcoff-rs6000
|
||||
; OBJ-NEXT: Arch: powerpc
|
||||
; OBJ-NEXT: AddressSize: 32bit
|
||||
; OBJ-NEXT: FileHeader {
|
||||
; OBJ-NEXT: Magic: 0x1DF
|
||||
; OBJ-NEXT: NumberOfSections: 2
|
||||
; OBJ-NEXT: TimeStamp:
|
||||
; OBJ-NEXT: SymbolTableOffset: 0x64
|
||||
; OBJ-NEXT: SymbolTableEntries: 16
|
||||
; OBJ-NEXT: OptionalHeaderSize: 0x0
|
||||
; OBJ-NEXT: Flags: 0x0
|
||||
; OBJ-NEXT: }
|
||||
; OBJ-NEXT: Sections [
|
||||
; OBJ-NEXT: Section {
|
||||
; OBJ-NEXT: Index: 1
|
||||
; OBJ-NEXT: Name: .text
|
||||
; OBJ-NEXT: PhysicalAddress: 0x0
|
||||
; OBJ-NEXT: VirtualAddress: 0x0
|
||||
; OBJ-NEXT: Size: 0x0
|
||||
; OBJ-NEXT: RawDataOffset: 0x64
|
||||
; OBJ-NEXT: RelocationPointer: 0x0
|
||||
; OBJ-NEXT: LineNumberPointer: 0x0
|
||||
; OBJ-NEXT: NumberOfRelocations: 0
|
||||
; OBJ-NEXT: NumberOfLineNumbers: 0
|
||||
; OBJ-NEXT: Type: STYP_TEXT (0x20)
|
||||
; OBJ-NEXT: }
|
||||
; OBJ-NEXT: Section {
|
||||
; OBJ-NEXT: Index: 2
|
||||
; OBJ-NEXT: Name: .bss
|
||||
; OBJ-NEXT: PhysicalAddress: 0x0
|
||||
; OBJ-NEXT: VirtualAddress: 0x0
|
||||
; OBJ-NEXT: Size: 0x6C
|
||||
; OBJ-NEXT: RawDataOffset: 0x0
|
||||
; OBJ-NEXT: RelocationPointer: 0x0
|
||||
; OBJ-NEXT: LineNumberPointer: 0x0
|
||||
; OBJ-NEXT: NumberOfRelocations: 0
|
||||
; OBJ-NEXT: NumberOfLineNumbers: 0
|
||||
; OBJ-NEXT: Type: STYP_BSS (0x80)
|
||||
; OBJ-NEXT: }
|
||||
; OBJ-NEXT: ]
|
||||
|
||||
; SYMS: File: {{.*}}aix-xcoff-common.ll.tmp.o
|
||||
; SYMS-NEXT: Format: aixcoff-rs6000
|
||||
; SYMS-NEXT: Arch: powerpc
|
||||
; SYMS-NEXT: AddressSize: 32bit
|
||||
; SYMS-NEXT: Symbols [
|
||||
; SYMS: Symbol {{[{][[:space:]] *}}Index: [[#Index:]]{{[[:space:]] *}}Name: a
|
||||
; SYMS-NEXT: Value (RelocatableAddress): 0x0
|
||||
; SYMS-NEXT: Section: .bss
|
||||
; SYMS-NEXT: Type: 0x0
|
||||
; SYMS-NEXT: StorageClass: C_EXT (0x2)
|
||||
; SYMS-NEXT: NumberOfAuxEntries: 1
|
||||
; SYMS-NEXT: CSECT Auxiliary Entry {
|
||||
; SYMS-NEXT: Index: [[#Index + 1]]
|
||||
; SYMS-NEXT: SectionLen: 4
|
||||
; SYMS-NEXT: ParameterHashIndex: 0x0
|
||||
; SYMS-NEXT: TypeChkSectNum: 0x0
|
||||
; SYMS-NEXT: SymbolAlignmentLog2: 2
|
||||
; SYMS-NEXT: SymbolType: XTY_CM (0x3)
|
||||
; SYMS-NEXT: StorageMappingClass: XMC_RW (0x5)
|
||||
; SYMS-NEXT: StabInfoIndex: 0x0
|
||||
; SYMS-NEXT: StabSectNum: 0x0
|
||||
; SYMS-NEXT: }
|
||||
; SYMS-NEXT: }
|
||||
; SYMS-NEXT: Symbol {
|
||||
; SYMS-NEXT: Index: [[#Index + 2]]
|
||||
; SYMS-NEXT: Name: b
|
||||
; SYMS-NEXT: Value (RelocatableAddress): 0x8
|
||||
; SYMS-NEXT: Section: .bss
|
||||
; SYMS-NEXT: Type: 0x0
|
||||
; SYMS-NEXT: StorageClass: C_EXT (0x2)
|
||||
; SYMS-NEXT: NumberOfAuxEntries: 1
|
||||
; SYMS-NEXT: CSECT Auxiliary Entry {
|
||||
; SYMS-NEXT: Index: [[#Index + 3]]
|
||||
; SYMS-NEXT: SectionLen: 8
|
||||
; SYMS-NEXT: ParameterHashIndex: 0x0
|
||||
; SYMS-NEXT: TypeChkSectNum: 0x0
|
||||
; SYMS-NEXT: SymbolAlignmentLog2: 3
|
||||
; SYMS-NEXT: SymbolType: XTY_CM (0x3)
|
||||
; SYMS-NEXT: StorageMappingClass: XMC_RW (0x5)
|
||||
; SYMS-NEXT: StabInfoIndex: 0x0
|
||||
; SYMS-NEXT: StabSectNum: 0x0
|
||||
; SYMS-NEXT: }
|
||||
; SYMS-NEXT: }
|
||||
; SYMS-NEXT: Symbol {
|
||||
; SYMS-NEXT: Index: [[#Index + 4]]
|
||||
; SYMS-NEXT: Name: c
|
||||
; SYMS-NEXT: Value (RelocatableAddress): 0x10
|
||||
; SYMS-NEXT: Section: .bss
|
||||
; SYMS-NEXT: Type: 0x0
|
||||
; SYMS-NEXT: StorageClass: C_EXT (0x2)
|
||||
; SYMS-NEXT: NumberOfAuxEntries: 1
|
||||
; SYMS-NEXT: CSECT Auxiliary Entry {
|
||||
; SYMS-NEXT: Index: [[#Index + 5]]
|
||||
; SYMS-NEXT: SectionLen: 2
|
||||
; SYMS-NEXT: ParameterHashIndex: 0x0
|
||||
; SYMS-NEXT: TypeChkSectNum: 0x0
|
||||
; SYMS-NEXT: SymbolAlignmentLog2: 1
|
||||
; SYMS-NEXT: SymbolType: XTY_CM (0x3)
|
||||
; SYMS-NEXT: StorageMappingClass: XMC_RW (0x5)
|
||||
; SYMS-NEXT: StabInfoIndex: 0x0
|
||||
; SYMS-NEXT: StabSectNum: 0x0
|
||||
; SYMS-NEXT: }
|
||||
; SYMS-NEXT: }
|
||||
; SYMS-NEXT: Symbol {
|
||||
; SYMS-NEXT: Index: [[#Index + 6]]
|
||||
; SYMS-NEXT: Name: d
|
||||
; SYMS-NEXT: Value (RelocatableAddress): 0x18
|
||||
; SYMS-NEXT: Section: .bss
|
||||
; SYMS-NEXT: Type: 0x0
|
||||
; SYMS-NEXT: StorageClass: C_EXT (0x2)
|
||||
; SYMS-NEXT: NumberOfAuxEntries: 1
|
||||
; SYMS-NEXT: CSECT Auxiliary Entry {
|
||||
; SYMS-NEXT: Index: [[#Index + 7]]
|
||||
; SYMS-NEXT: SectionLen: 8
|
||||
; SYMS-NEXT: ParameterHashIndex: 0x0
|
||||
; SYMS-NEXT: TypeChkSectNum: 0x0
|
||||
; SYMS-NEXT: SymbolAlignmentLog2: 3
|
||||
; SYMS-NEXT: SymbolType: XTY_CM (0x3)
|
||||
; SYMS-NEXT: StorageMappingClass: XMC_RW (0x5)
|
||||
; SYMS-NEXT: StabInfoIndex: 0x0
|
||||
; SYMS-NEXT: StabSectNum: 0x0
|
||||
; SYMS-NEXT: }
|
||||
; SYMS-NEXT: }
|
||||
; SYMS-NEXT: Symbol {
|
||||
; SYMS-NEXT: Index: [[#Index + 8]]
|
||||
; SYMS-NEXT: Name: f
|
||||
; SYMS-NEXT: Value (RelocatableAddress): 0x20
|
||||
; SYMS-NEXT: Section: .bss
|
||||
; SYMS-NEXT: Type: 0x0
|
||||
; SYMS-NEXT: StorageClass: C_EXT (0x2)
|
||||
; SYMS-NEXT: NumberOfAuxEntries: 1
|
||||
; SYMS-NEXT: CSECT Auxiliary Entry {
|
||||
; SYMS-NEXT: Index: [[#Index + 9]]
|
||||
; SYMS-NEXT: SectionLen: 4
|
||||
; SYMS-NEXT: ParameterHashIndex: 0x0
|
||||
; SYMS-NEXT: TypeChkSectNum: 0x0
|
||||
; SYMS-NEXT: SymbolAlignmentLog2: 2
|
||||
; SYMS-NEXT: SymbolType: XTY_CM (0x3)
|
||||
; SYMS-NEXT: StorageMappingClass: XMC_RW (0x5)
|
||||
; SYMS-NEXT: StabInfoIndex: 0x0
|
||||
; SYMS-NEXT: StabSectNum: 0x0
|
||||
; SYMS-NEXT: }
|
||||
; SYMS-NEXT: }
|
||||
; SYMS-NEXT: Symbol {
|
||||
; SYMS-NEXT: Index: [[#Index + 10]]
|
||||
; SYMS-NEXT: Name: over_aligned
|
||||
; SYMS-NEXT: Value (RelocatableAddress): 0x40
|
||||
; SYMS-NEXT: Section: .bss
|
||||
; SYMS-NEXT: Type: 0x0
|
||||
; SYMS-NEXT: StorageClass: C_EXT (0x2)
|
||||
; SYMS-NEXT: NumberOfAuxEntries: 1
|
||||
; SYMS-NEXT: CSECT Auxiliary Entry {
|
||||
; SYMS-NEXT: Index: [[#Index + 11]]
|
||||
; SYMS-NEXT: SectionLen: 8
|
||||
; SYMS-NEXT: ParameterHashIndex: 0x0
|
||||
; SYMS-NEXT: TypeChkSectNum: 0x0
|
||||
; SYMS-NEXT: SymbolAlignmentLog2: 5
|
||||
; SYMS-NEXT: SymbolType: XTY_CM (0x3)
|
||||
; SYMS-NEXT: StorageMappingClass: XMC_RW (0x5)
|
||||
; SYMS-NEXT: StabInfoIndex: 0x0
|
||||
; SYMS-NEXT: StabSectNum: 0x0
|
||||
; SYMS-NEXT: }
|
||||
; SYMS-NEXT: }
|
||||
; SYMS-NEXT: Symbol {
|
||||
; SYMS-NEXT: Index: [[#Index + 12]]
|
||||
; SYMS-NEXT: Name: array
|
||||
; SYMS-NEXT: Value (RelocatableAddress): 0x48
|
||||
; SYMS-NEXT: Section: .bss
|
||||
; SYMS-NEXT: Type: 0x0
|
||||
; SYMS-NEXT: StorageClass: C_EXT (0x2)
|
||||
; SYMS-NEXT: NumberOfAuxEntries: 1
|
||||
; SYMS-NEXT: CSECT Auxiliary Entry {
|
||||
; SYMS-NEXT: Index: [[#Index + 13]]
|
||||
; SYMS-NEXT: SectionLen: 33
|
||||
; SYMS-NEXT: ParameterHashIndex: 0x0
|
||||
; SYMS-NEXT: TypeChkSectNum: 0x0
|
||||
; SYMS-NEXT: SymbolAlignmentLog2: 0
|
||||
; SYMS-NEXT: SymbolType: XTY_CM (0x3)
|
||||
; SYMS-NEXT: StorageMappingClass: XMC_RW (0x5)
|
||||
; SYMS-NEXT: StabInfoIndex: 0x0
|
||||
; SYMS-NEXT: StabSectNum: 0x0
|
||||
; SYMS-NEXT: }
|
||||
; SYMS-NEXT: }
|
||||
; SYMS-NEXT: ]
|
|
@ -1,15 +1,43 @@
|
|||
; This file tests the codegen of initialized and common variables in AIX
|
||||
; assembly and XCOFF object files.
|
||||
|
||||
; RUN: llc -mtriple powerpc-ibm-aix-xcoff < %s | FileCheck %s
|
||||
; RUN: llc -mtriple powerpc64-ibm-aix-xcoff < %s | FileCheck %s
|
||||
|
||||
; RUN: llc -mtriple powerpc-ibm-aix-xcoff -filetype=obj -o %t.o < %s
|
||||
; RUN: llvm-readobj --section-headers --file-header %t.o | \
|
||||
; RUN: FileCheck --check-prefix=OBJ %s
|
||||
; RUN: llvm-readobj --syms %t.o | FileCheck --check-prefix=SYMS %s
|
||||
|
||||
; RUN: not llc -mtriple powerpc64-ibm-aix-xcoff -filetype=obj < %s 2>&1 | \
|
||||
; RUN: FileCheck --check-prefix=XCOFF64 %s
|
||||
; XCOFF64: LLVM ERROR: 64-bit XCOFF object files are not supported yet.
|
||||
|
||||
@ivar = local_unnamed_addr global i32 35, align 4
|
||||
@llvar = local_unnamed_addr global i64 36, align 8
|
||||
@svar = local_unnamed_addr global i16 37, align 2
|
||||
@fvar = local_unnamed_addr global float 8.000000e+02, align 4
|
||||
@dvar = local_unnamed_addr global double 9.000000e+02, align 8
|
||||
@over_aligned = local_unnamed_addr global double 9.000000e+02, align 32
|
||||
@charr = local_unnamed_addr global [4 x i8] c"abcd", align 1
|
||||
@chrarray = local_unnamed_addr global [4 x i8] c"abcd", align 1
|
||||
@dblarr = local_unnamed_addr global [4 x double] [double 1.000000e+00, double 2.000000e+00, double 3.000000e+00, double 4.000000e+00], align 8
|
||||
|
||||
@a = common global i32 0, align 4
|
||||
@b = common global i64 0, align 8
|
||||
@c = common global i16 0, align 2
|
||||
|
||||
@d = common local_unnamed_addr global double 0.000000e+00, align 8
|
||||
@f = common local_unnamed_addr global float 0.000000e+00, align 4
|
||||
|
||||
@over_aligned_comm = common local_unnamed_addr global double 0.000000e+00, align 32
|
||||
|
||||
@array = common local_unnamed_addr global [33 x i8] zeroinitializer, align 1
|
||||
|
||||
; CHECK-NOT: .toc
|
||||
|
||||
; CHECK: .csect .text[PR]
|
||||
; CHECK-NEXT: .file
|
||||
|
||||
; CHECK: .csect .data[RW]
|
||||
; CHECK-NEXT: .globl ivar
|
||||
; CHECK-NEXT: .align 2
|
||||
|
@ -41,8 +69,8 @@
|
|||
; CHECK-NEXT: over_aligned:
|
||||
; CHECK-NEXT: .llong 4651127699538968576
|
||||
|
||||
; CHECK: .globl charr
|
||||
; CHECK-NEXT: charr:
|
||||
; CHECK: .globl chrarray
|
||||
; CHECK-NEXT: chrarray:
|
||||
; CHECK-NEXT: .byte 97
|
||||
; CHECK-NEXT: .byte 98
|
||||
; CHECK-NEXT: .byte 99
|
||||
|
@ -55,3 +83,432 @@
|
|||
; CHECK-NEXT: .llong 4611686018427387904
|
||||
; CHECK-NEXT: .llong 4613937818241073152
|
||||
; CHECK-NEXT: .llong 4616189618054758400
|
||||
|
||||
; CHECK-NEXT: .comm a,4,2
|
||||
; CHECK-NEXT: .comm b,8,3
|
||||
; CHECK-NEXT: .comm c,2,1
|
||||
; CHECK-NEXT: .comm d,8,3
|
||||
; CHECK-NEXT: .comm f,4,2
|
||||
; CHECK-NEXT: .comm over_aligned_comm,8,5
|
||||
; CHECK-NEXT: .comm array,33,0
|
||||
|
||||
; OBJ: File: {{.*}}aix-xcoff-data.ll.tmp.o
|
||||
; OBJ-NEXT: Format: aixcoff-rs6000
|
||||
; OBJ-NEXT: Arch: powerpc
|
||||
; OBJ-NEXT: AddressSize: 32bit
|
||||
; OBJ-NEXT: FileHeader {
|
||||
; OBJ-NEXT: Magic: 0x1DF
|
||||
; OBJ-NEXT: NumberOfSections: 3
|
||||
; OBJ-NEXT: TimeStamp:
|
||||
; OBJ-NEXT: SymbolTableOffset: 0xDC
|
||||
; OBJ-NEXT: SymbolTableEntries: 34
|
||||
; OBJ-NEXT: OptionalHeaderSize: 0x0
|
||||
; OBJ-NEXT: Flags: 0x0
|
||||
; OBJ-NEXT: }
|
||||
|
||||
; OBJ: Sections [
|
||||
; OBJ: Section {
|
||||
; OBJ-NEXT: Index: 1
|
||||
; OBJ-NEXT: Name: .text
|
||||
; OBJ-NEXT: PhysicalAddress: 0x0
|
||||
; OBJ-NEXT: VirtualAddress: 0x0
|
||||
; OBJ-NEXT: Size: 0x0
|
||||
; OBJ-NEXT: RawDataOffset: 0x8C
|
||||
; OBJ-NEXT: RelocationPointer: 0x0
|
||||
; OBJ-NEXT: LineNumberPointer: 0x0
|
||||
; OBJ-NEXT: NumberOfRelocations: 0
|
||||
; OBJ-NEXT: NumberOfLineNumbers: 0
|
||||
; OBJ-NEXT: Type: STYP_TEXT (0x20)
|
||||
; OBJ-NEXT: }
|
||||
|
||||
; OBJ: Section {
|
||||
; OBJ-NEXT: Index: 2
|
||||
; OBJ-NEXT: Name: .data
|
||||
; OBJ-NEXT: PhysicalAddress: 0x0
|
||||
; OBJ-NEXT: VirtualAddress: 0x0
|
||||
; OBJ-NEXT: Size: 0x50
|
||||
; OBJ-NEXT: RawDataOffset: 0x8C
|
||||
; OBJ-NEXT: RelocationPointer: 0x0
|
||||
; OBJ-NEXT: LineNumberPointer: 0x0
|
||||
; OBJ-NEXT: NumberOfRelocations: 0
|
||||
; OBJ-NEXT: NumberOfLineNumbers: 0
|
||||
; OBJ-NEXT: Type: STYP_DATA (0x40)
|
||||
; OBJ-NEXT: }
|
||||
|
||||
; OBJ: Section {
|
||||
; OBJ-NEXT: Index: 3
|
||||
; OBJ-NEXT: Name: .bss
|
||||
; OBJ-NEXT: PhysicalAddress: 0x50
|
||||
; OBJ-NEXT: VirtualAddress: 0x50
|
||||
; OBJ-NEXT: Size: 0x5C
|
||||
; OBJ-NEXT: RawDataOffset: 0x0
|
||||
; OBJ-NEXT: RelocationPointer: 0x0
|
||||
; OBJ-NEXT: LineNumberPointer: 0x0
|
||||
; OBJ-NEXT: NumberOfRelocations: 0
|
||||
; OBJ-NEXT: NumberOfLineNumbers: 0
|
||||
; OBJ-NEXT: Type: STYP_BSS (0x80)
|
||||
; OBJ-NEXT: }
|
||||
; OBJ: ]
|
||||
|
||||
; SYMS: File: {{.*}}aix-xcoff-data.ll.tmp.o
|
||||
; SYMS-NEXT: Format: aixcoff-rs6000
|
||||
; SYMS-NEXT: Arch: powerpc
|
||||
; SYMS-NEXT: AddressSize: 32bit
|
||||
; SYMS: Symbols [
|
||||
; SYMS: Symbol {
|
||||
; SYMS-NEXT: Index: [[#INDX:]]
|
||||
; 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+1]]
|
||||
; SYMS-NEXT: SectionLen: 0
|
||||
; SYMS-NEXT: ParameterHashIndex: 0x0
|
||||
; SYMS-NEXT: TypeChkSectNum: 0x0
|
||||
; SYMS-NEXT: SymbolAlignmentLog2: 0
|
||||
; 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: Symbol {
|
||||
; SYMS-NEXT: Index: [[#INDX+2]]
|
||||
; SYMS-NEXT: Name: .data
|
||||
; SYMS-NEXT: Value (RelocatableAddress): 0x0
|
||||
; SYMS-NEXT: Section: .data
|
||||
; SYMS-NEXT: Type: 0x0
|
||||
; SYMS-NEXT: StorageClass: C_HIDEXT (0x6B)
|
||||
; SYMS-NEXT: NumberOfAuxEntries: 1
|
||||
; SYMS-NEXT: CSECT Auxiliary Entry {
|
||||
; SYMS-NEXT: Index: [[#INDX+3]]
|
||||
; SYMS-NEXT: SectionLen: 80
|
||||
; SYMS-NEXT: ParameterHashIndex: 0x0
|
||||
; SYMS-NEXT: TypeChkSectNum: 0x0
|
||||
; SYMS-NEXT: SymbolAlignmentLog2: 5
|
||||
; SYMS-NEXT: SymbolType: XTY_SD (0x1)
|
||||
; SYMS-NEXT: StorageMappingClass: XMC_RW (0x5)
|
||||
; SYMS-NEXT: StabInfoIndex: 0x0
|
||||
; SYMS-NEXT: StabSectNum: 0x0
|
||||
; SYMS-NEXT: }
|
||||
; SYMS-NEXT: }
|
||||
|
||||
; SYMS: Symbol {
|
||||
; SYMS-NEXT: Index: [[#INDX+4]]
|
||||
; SYMS-NEXT: Name: ivar
|
||||
; SYMS-NEXT: Value (RelocatableAddress): 0x0
|
||||
; SYMS-NEXT: Section: .data
|
||||
; SYMS-NEXT: Type: 0x0
|
||||
; SYMS-NEXT: StorageClass: C_EXT (0x2)
|
||||
; SYMS-NEXT: NumberOfAuxEntries: 1
|
||||
; SYMS-NEXT: CSECT Auxiliary Entry {
|
||||
; SYMS-NEXT: Index: [[#INDX+5]]
|
||||
; SYMS-NEXT: ContainingCsectSymbolIndex: [[#INDX+2]]
|
||||
; SYMS-NEXT: ParameterHashIndex: 0x0
|
||||
; SYMS-NEXT: TypeChkSectNum: 0x0
|
||||
; SYMS-NEXT: SymbolAlignmentLog2: 0
|
||||
; SYMS-NEXT: SymbolType: XTY_LD (0x2)
|
||||
; SYMS-NEXT: StorageMappingClass: XMC_RW (0x5)
|
||||
; SYMS-NEXT: StabInfoIndex: 0x0
|
||||
; SYMS-NEXT: StabSectNum: 0x0
|
||||
; SYMS-NEXT: }
|
||||
; SYMS-NEXT: }
|
||||
|
||||
; SYMS: Symbol {
|
||||
; SYMS-NEXT: Index: [[#INDX+6]]
|
||||
; SYMS-NEXT: Name: llvar
|
||||
; SYMS-NEXT: Value (RelocatableAddress): 0x8
|
||||
; SYMS-NEXT: Section: .data
|
||||
; SYMS-NEXT: Type: 0x0
|
||||
; SYMS-NEXT: StorageClass: C_EXT (0x2)
|
||||
; SYMS-NEXT: NumberOfAuxEntries: 1
|
||||
; SYMS-NEXT: CSECT Auxiliary Entry {
|
||||
; SYMS-NEXT: Index: [[#INDX+7]]
|
||||
; SYMS-NEXT: ContainingCsectSymbolIndex: [[#INDX+2]]
|
||||
; SYMS-NEXT: ParameterHashIndex: 0x0
|
||||
; SYMS-NEXT: TypeChkSectNum: 0x0
|
||||
; SYMS-NEXT: SymbolAlignmentLog2: 0
|
||||
; SYMS-NEXT: SymbolType: XTY_LD (0x2)
|
||||
; SYMS-NEXT: StorageMappingClass: XMC_RW (0x5)
|
||||
; SYMS-NEXT: StabInfoIndex: 0x0
|
||||
; SYMS-NEXT: StabSectNum: 0x0
|
||||
; SYMS-NEXT: }
|
||||
; SYMS-NEXT: }
|
||||
|
||||
; SYMS: Symbol {
|
||||
; SYMS-NEXT: Index: [[#INDX+8]]
|
||||
; SYMS-NEXT: Name: svar
|
||||
; SYMS-NEXT: Value (RelocatableAddress): 0x10
|
||||
; SYMS-NEXT: Section: .data
|
||||
; SYMS-NEXT: Type: 0x0
|
||||
; SYMS-NEXT: StorageClass: C_EXT (0x2)
|
||||
; SYMS-NEXT: NumberOfAuxEntries: 1
|
||||
; SYMS-NEXT: CSECT Auxiliary Entry {
|
||||
; SYMS-NEXT: Index: [[#INDX+9]]
|
||||
; SYMS-NEXT: ContainingCsectSymbolIndex: [[#INDX+2]]
|
||||
; SYMS-NEXT: ParameterHashIndex: 0x0
|
||||
; SYMS-NEXT: TypeChkSectNum: 0x0
|
||||
; SYMS-NEXT: SymbolAlignmentLog2: 0
|
||||
; SYMS-NEXT: SymbolType: XTY_LD (0x2)
|
||||
; SYMS-NEXT: StorageMappingClass: XMC_RW (0x5)
|
||||
; SYMS-NEXT: StabInfoIndex: 0x0
|
||||
; SYMS-NEXT: StabSectNum: 0x0
|
||||
; SYMS-NEXT: }
|
||||
; SYMS-NEXT: }
|
||||
|
||||
; SYMS: Symbol {
|
||||
; SYMS-NEXT: Index: [[#INDX+10]]
|
||||
; SYMS-NEXT: Name: fvar
|
||||
; SYMS-NEXT: Value (RelocatableAddress): 0x14
|
||||
; SYMS-NEXT: Section: .data
|
||||
; SYMS-NEXT: Type: 0x0
|
||||
; SYMS-NEXT: StorageClass: C_EXT (0x2)
|
||||
; SYMS-NEXT: NumberOfAuxEntries: 1
|
||||
; SYMS-NEXT: CSECT Auxiliary Entry {
|
||||
; SYMS-NEXT: Index: [[#INDX+11]]
|
||||
; SYMS-NEXT: ContainingCsectSymbolIndex: [[#INDX+2]]
|
||||
; SYMS-NEXT: ParameterHashIndex: 0x0
|
||||
; SYMS-NEXT: TypeChkSectNum: 0x0
|
||||
; SYMS-NEXT: SymbolAlignmentLog2: 0
|
||||
; SYMS-NEXT: SymbolType: XTY_LD (0x2)
|
||||
; SYMS-NEXT: StorageMappingClass: XMC_RW (0x5)
|
||||
; SYMS-NEXT: StabInfoIndex: 0x0
|
||||
; SYMS-NEXT: StabSectNum: 0x0
|
||||
; SYMS-NEXT: }
|
||||
; SYMS-NEXT: }
|
||||
|
||||
; SYMS: Symbol {
|
||||
; SYMS-NEXT: Index: [[#INDX+12]]
|
||||
; SYMS-NEXT: Name: dvar
|
||||
; SYMS-NEXT: Value (RelocatableAddress): 0x18
|
||||
; SYMS-NEXT: Section: .data
|
||||
; SYMS-NEXT: Type: 0x0
|
||||
; SYMS-NEXT: StorageClass: C_EXT (0x2)
|
||||
; SYMS-NEXT: NumberOfAuxEntries: 1
|
||||
; SYMS-NEXT: CSECT Auxiliary Entry {
|
||||
; SYMS-NEXT: Index: [[#INDX+13]]
|
||||
; SYMS-NEXT: ContainingCsectSymbolIndex: [[#INDX+2]]
|
||||
; SYMS-NEXT: ParameterHashIndex: 0x0
|
||||
; SYMS-NEXT: TypeChkSectNum: 0x0
|
||||
; SYMS-NEXT: SymbolAlignmentLog2: 0
|
||||
; SYMS-NEXT: SymbolType: XTY_LD (0x2)
|
||||
; SYMS-NEXT: StorageMappingClass: XMC_RW (0x5)
|
||||
; SYMS-NEXT: StabInfoIndex: 0x0
|
||||
; SYMS-NEXT: StabSectNum: 0x0
|
||||
; SYMS-NEXT: }
|
||||
; SYMS-NEXT: }
|
||||
|
||||
; SYMS: Symbol {
|
||||
; SYMS-NEXT: Index: [[#INDX+14]]
|
||||
; SYMS-NEXT: Name: over_aligned
|
||||
; SYMS-NEXT: Value (RelocatableAddress): 0x20
|
||||
; SYMS-NEXT: Section: .data
|
||||
; SYMS-NEXT: Type: 0x0
|
||||
; SYMS-NEXT: StorageClass: C_EXT (0x2)
|
||||
; SYMS-NEXT: NumberOfAuxEntries: 1
|
||||
; SYMS-NEXT: CSECT Auxiliary Entry {
|
||||
; SYMS-NEXT: Index: [[#INDX+15]]
|
||||
; SYMS-NEXT: ContainingCsectSymbolIndex: [[#INDX+2]]
|
||||
; SYMS-NEXT: ParameterHashIndex: 0x0
|
||||
; SYMS-NEXT: TypeChkSectNum: 0x0
|
||||
; SYMS-NEXT: SymbolAlignmentLog2: 0
|
||||
; SYMS-NEXT: SymbolType: XTY_LD (0x2)
|
||||
; SYMS-NEXT: StorageMappingClass: XMC_RW (0x5)
|
||||
; SYMS-NEXT: StabInfoIndex: 0x0
|
||||
; SYMS-NEXT: StabSectNum: 0x0
|
||||
; SYMS-NEXT: }
|
||||
; SYMS-NEXT: }
|
||||
|
||||
; SYMS: Symbol {
|
||||
; SYMS-NEXT: Index: [[#INDX+16]]
|
||||
; SYMS-NEXT: Name: chrarray
|
||||
; SYMS-NEXT: Value (RelocatableAddress): 0x28
|
||||
; SYMS-NEXT: Section: .data
|
||||
; SYMS-NEXT: Type: 0x0
|
||||
; SYMS-NEXT: StorageClass: C_EXT (0x2)
|
||||
; SYMS-NEXT: NumberOfAuxEntries: 1
|
||||
; SYMS-NEXT: CSECT Auxiliary Entry {
|
||||
; SYMS-NEXT: Index: [[#INDX+17]]
|
||||
; SYMS-NEXT: ContainingCsectSymbolIndex: [[#INDX+2]]
|
||||
; SYMS-NEXT: ParameterHashIndex: 0x0
|
||||
; SYMS-NEXT: TypeChkSectNum: 0x0
|
||||
; SYMS-NEXT: SymbolAlignmentLog2: 0
|
||||
; SYMS-NEXT: SymbolType: XTY_LD (0x2)
|
||||
; SYMS-NEXT: StorageMappingClass: XMC_RW (0x5)
|
||||
; SYMS-NEXT: StabInfoIndex: 0x0
|
||||
; SYMS-NEXT: StabSectNum: 0x0
|
||||
; SYMS-NEXT: }
|
||||
; SYMS-NEXT: }
|
||||
|
||||
; SYMS: Symbol {
|
||||
; SYMS-NEXT: Index: [[#INDX+18]]
|
||||
; SYMS-NEXT: Name: dblarr
|
||||
; SYMS-NEXT: Value (RelocatableAddress): 0x30
|
||||
; SYMS-NEXT: Section: .data
|
||||
; SYMS-NEXT: Type: 0x0
|
||||
; SYMS-NEXT: StorageClass: C_EXT (0x2)
|
||||
; SYMS-NEXT: NumberOfAuxEntries: 1
|
||||
; SYMS-NEXT: CSECT Auxiliary Entry {
|
||||
; SYMS-NEXT: Index: [[#INDX+19]]
|
||||
; SYMS-NEXT: ContainingCsectSymbolIndex: [[#INDX+2]]
|
||||
; SYMS-NEXT: ParameterHashIndex: 0x0
|
||||
; SYMS-NEXT: TypeChkSectNum: 0x0
|
||||
; SYMS-NEXT: SymbolAlignmentLog2: 0
|
||||
; SYMS-NEXT: SymbolType: XTY_LD (0x2)
|
||||
; SYMS-NEXT: StorageMappingClass: XMC_RW (0x5)
|
||||
; SYMS-NEXT: StabInfoIndex: 0x0
|
||||
; SYMS-NEXT: StabSectNum: 0x0
|
||||
; SYMS-NEXT: }
|
||||
; SYMS-NEXT: }
|
||||
|
||||
; SYMS: Symbol {
|
||||
; SYMS-NEXT: Index: [[#INDX+20]]
|
||||
; SYMS-NEXT: Name: a
|
||||
; SYMS-NEXT: Value (RelocatableAddress): 0x50
|
||||
; SYMS-NEXT: Section: .bss
|
||||
; SYMS-NEXT: Type: 0x0
|
||||
; SYMS-NEXT: StorageClass: C_EXT (0x2)
|
||||
; SYMS-NEXT: NumberOfAuxEntries: 1
|
||||
; SYMS-NEXT: CSECT Auxiliary Entry {
|
||||
; SYMS-NEXT: Index: [[#INDX+21]]
|
||||
; SYMS-NEXT: SectionLen: 4
|
||||
; SYMS-NEXT: ParameterHashIndex: 0x0
|
||||
; SYMS-NEXT: TypeChkSectNum: 0x0
|
||||
; SYMS-NEXT: SymbolAlignmentLog2: 2
|
||||
; SYMS-NEXT: SymbolType: XTY_CM (0x3)
|
||||
; SYMS-NEXT: StorageMappingClass: XMC_RW (0x5)
|
||||
; SYMS-NEXT: StabInfoIndex: 0x0
|
||||
; SYMS-NEXT: StabSectNum: 0x0
|
||||
; SYMS-NEXT: }
|
||||
; SYMS-NEXT: }
|
||||
|
||||
; SYMS: Symbol {
|
||||
; SYMS-NEXT: Index: [[#INDX+22]]
|
||||
; SYMS-NEXT: Name: b
|
||||
; SYMS-NEXT: Value (RelocatableAddress): 0x58
|
||||
; SYMS-NEXT: Section: .bss
|
||||
; SYMS-NEXT: Type: 0x0
|
||||
; SYMS-NEXT: StorageClass: C_EXT (0x2)
|
||||
; SYMS-NEXT: NumberOfAuxEntries: 1
|
||||
; SYMS-NEXT: CSECT Auxiliary Entry {
|
||||
; SYMS-NEXT: Index: [[#INDX+23]]
|
||||
; SYMS-NEXT: SectionLen: 8
|
||||
; SYMS-NEXT: ParameterHashIndex: 0x0
|
||||
; SYMS-NEXT: TypeChkSectNum: 0x0
|
||||
; SYMS-NEXT: SymbolAlignmentLog2: 3
|
||||
; SYMS-NEXT: SymbolType: XTY_CM (0x3)
|
||||
; SYMS-NEXT: StorageMappingClass: XMC_RW (0x5)
|
||||
; SYMS-NEXT: StabInfoIndex: 0x0
|
||||
; SYMS-NEXT: StabSectNum: 0x0
|
||||
; SYMS-NEXT: }
|
||||
; SYMS-NEXT: }
|
||||
|
||||
; SYMS: Symbol {
|
||||
; SYMS-NEXT: Index: [[#INDX+24]]
|
||||
; SYMS-NEXT: Name: c
|
||||
; SYMS-NEXT: Value (RelocatableAddress): 0x60
|
||||
; SYMS-NEXT: Section: .bss
|
||||
; SYMS-NEXT: Type: 0x0
|
||||
; SYMS-NEXT: StorageClass: C_EXT (0x2)
|
||||
; SYMS-NEXT: NumberOfAuxEntries: 1
|
||||
; SYMS-NEXT: CSECT Auxiliary Entry {
|
||||
; SYMS-NEXT: Index: [[#INDX+25]]
|
||||
; SYMS-NEXT: SectionLen: 2
|
||||
; SYMS-NEXT: ParameterHashIndex: 0x0
|
||||
; SYMS-NEXT: TypeChkSectNum: 0x0
|
||||
; SYMS-NEXT: SymbolAlignmentLog2: 1
|
||||
; SYMS-NEXT: SymbolType: XTY_CM (0x3)
|
||||
; SYMS-NEXT: StorageMappingClass: XMC_RW (0x5)
|
||||
; SYMS-NEXT: StabInfoIndex: 0x0
|
||||
; SYMS-NEXT: StabSectNum: 0x0
|
||||
; SYMS-NEXT: }
|
||||
; SYMS-NEXT: }
|
||||
|
||||
; SYMS: Symbol {
|
||||
; SYMS-NEXT: Index: [[#INDX+26]]
|
||||
; SYMS-NEXT: Name: d
|
||||
; SYMS-NEXT: Value (RelocatableAddress): 0x68
|
||||
; SYMS-NEXT: Section: .bss
|
||||
; SYMS-NEXT: Type: 0x0
|
||||
; SYMS-NEXT: StorageClass: C_EXT (0x2)
|
||||
; SYMS-NEXT: NumberOfAuxEntries: 1
|
||||
; SYMS-NEXT: CSECT Auxiliary Entry {
|
||||
; SYMS-NEXT: Index: [[#INDX+27]]
|
||||
; SYMS-NEXT: SectionLen: 8
|
||||
; SYMS-NEXT: ParameterHashIndex: 0x0
|
||||
; SYMS-NEXT: TypeChkSectNum: 0x0
|
||||
; SYMS-NEXT: SymbolAlignmentLog2: 3
|
||||
; SYMS-NEXT: SymbolType: XTY_CM (0x3)
|
||||
; SYMS-NEXT: StorageMappingClass: XMC_RW (0x5)
|
||||
; SYMS-NEXT: StabInfoIndex: 0x0
|
||||
; SYMS-NEXT: StabSectNum: 0x0
|
||||
; SYMS-NEXT: }
|
||||
; SYMS-NEXT: }
|
||||
|
||||
; SYMS: Symbol {
|
||||
; SYMS-NEXT: Index: [[#INDX+28]]
|
||||
; SYMS-NEXT: Name: f
|
||||
; SYMS-NEXT: Value (RelocatableAddress): 0x70
|
||||
; SYMS-NEXT: Section: .bss
|
||||
; SYMS-NEXT: Type: 0x0
|
||||
; SYMS-NEXT: StorageClass: C_EXT (0x2)
|
||||
; SYMS-NEXT: NumberOfAuxEntries: 1
|
||||
; SYMS-NEXT: CSECT Auxiliary Entry {
|
||||
; SYMS-NEXT: Index: [[#INDX+29]]
|
||||
; SYMS-NEXT: SectionLen: 4
|
||||
; SYMS-NEXT: ParameterHashIndex: 0x0
|
||||
; SYMS-NEXT: TypeChkSectNum: 0x0
|
||||
; SYMS-NEXT: SymbolAlignmentLog2: 2
|
||||
; SYMS-NEXT: SymbolType: XTY_CM (0x3)
|
||||
; SYMS-NEXT: StorageMappingClass: XMC_RW (0x5)
|
||||
; SYMS-NEXT: StabInfoIndex: 0x0
|
||||
; SYMS-NEXT: StabSectNum: 0x0
|
||||
; SYMS-NEXT: }
|
||||
; SYMS-NEXT: }
|
||||
|
||||
; SYMS: Symbol {
|
||||
; SYMS-NEXT: Index: [[#INDX+30]]
|
||||
; SYMS-NEXT: Name: over_aligned_comm
|
||||
; SYMS-NEXT: Value (RelocatableAddress): 0x80
|
||||
; SYMS-NEXT: Section: .bss
|
||||
; SYMS-NEXT: Type: 0x0
|
||||
; SYMS-NEXT: StorageClass: C_EXT (0x2)
|
||||
; SYMS-NEXT: NumberOfAuxEntries: 1
|
||||
; SYMS-NEXT: CSECT Auxiliary Entry {
|
||||
; SYMS-NEXT: Index: [[#INDX+31]]
|
||||
; SYMS-NEXT: SectionLen: 8
|
||||
; SYMS-NEXT: ParameterHashIndex: 0x0
|
||||
; SYMS-NEXT: TypeChkSectNum: 0x0
|
||||
; SYMS-NEXT: SymbolAlignmentLog2: 5
|
||||
; SYMS-NEXT: SymbolType: XTY_CM (0x3)
|
||||
; SYMS-NEXT: StorageMappingClass: XMC_RW (0x5)
|
||||
; SYMS-NEXT: StabInfoIndex: 0x0
|
||||
; SYMS-NEXT: StabSectNum: 0x0
|
||||
; SYMS-NEXT: }
|
||||
; SYMS-NEXT: }
|
||||
|
||||
; SYMS: Symbol {
|
||||
; SYMS-NEXT: Index: [[#INDX+32]]
|
||||
; SYMS-NEXT: Name: array
|
||||
; SYMS-NEXT: Value (RelocatableAddress): 0x88
|
||||
; SYMS-NEXT: Section: .bss
|
||||
; SYMS-NEXT: Type: 0x0
|
||||
; SYMS-NEXT: StorageClass: C_EXT (0x2)
|
||||
; SYMS-NEXT: NumberOfAuxEntries: 1
|
||||
; SYMS-NEXT: CSECT Auxiliary Entry {
|
||||
; SYMS-NEXT: Index: [[#INDX+33]]
|
||||
; SYMS-NEXT: SectionLen: 33
|
||||
; SYMS-NEXT: ParameterHashIndex: 0x0
|
||||
; SYMS-NEXT: TypeChkSectNum: 0x0
|
||||
; SYMS-NEXT: SymbolAlignmentLog2: 0
|
||||
; SYMS-NEXT: SymbolType: XTY_CM (0x3)
|
||||
; SYMS-NEXT: StorageMappingClass: XMC_RW (0x5)
|
||||
; SYMS-NEXT: StabInfoIndex: 0x0
|
||||
; SYMS-NEXT: StabSectNum: 0x0
|
||||
; SYMS-NEXT: }
|
||||
; SYMS-NEXT: }
|
||||
; SYMS: ]
|
||||
|
|
Loading…
Reference in New Issue