122 lines · plain
1; RUN: llc -mtriple powerpc-ibm-aix-xcoff -verify-machineinstrs < %s | FileCheck %s2; RUN: llc -mtriple powerpc64-ibm-aix-xcoff -verify-machineinstrs < %s | FileCheck %s3 4; RUN: llc -filetype=obj -mtriple powerpc-ibm-aix-xcoff -verify-machineinstrs < %s -o %t32.o5; RUN: llvm-readobj %t32.o --syms --relocs | FileCheck %s -D#NFA=2 --check-prefix=OBJ326; RUN: llc -filetype=obj -mtriple powerpc64-ibm-aix-xcoff -verify-machineinstrs < %s -o %t64.o7; RUN: llvm-readobj %t64.o --syms --relocs | FileCheck %s -D#NFA=2 --check-prefix=OBJ648 9@i = external global i32, align 4 #010 11; Function Attrs: noinline nounwind optnone12define ptr @get() {13 entry:14 ret ptr @i15}16 17attributes #0 = { "toc-data" }18 19; CHECK: la 3, i[TD](2)20; CHECK: .toc21; CHECK-NEXT: .extern i[TD]22 23; OBJ32: Relocations [24; OBJ32-NEXT: Section (index: 1) .text {25; OBJ32-NEXT: 0x2 R_TOC i([[#NFA+1]]) 0xF26; OBJ32-NEXT: }27; OBJ32-NEXT: Section (index: 2) .data {28; OBJ32-NEXT: 0x20 R_POS .get([[#NFA+5]]) 0x1F29; OBJ32-NEXT: 0x24 R_POS TOC([[#NFA+9]]) 0x1F30; OBJ32-NEXT: }31; OBJ32-NEXT: ]32 33; OBJ32: Symbol {34; OBJ32: Index: [[#NFA+1]]35; OBJ32-NEXT: Name: i36; OBJ32-NEXT: Value (RelocatableAddress): 0x037; OBJ32-NEXT: Section: N_UNDEF38; OBJ32-NEXT: Type: 0x039; OBJ32-NEXT: StorageClass: C_EXT (0x2)40; OBJ32-NEXT: NumberOfAuxEntries: 141; OBJ32-NEXT: CSECT Auxiliary Entry {42; OBJ32-NEXT: Index: [[#NFA+2]]43; OBJ32-NEXT: SectionLen: 044; OBJ32-NEXT: ParameterHashIndex: 0x045; OBJ32-NEXT: TypeChkSectNum: 0x046; OBJ32-NEXT: SymbolAlignmentLog2: 047; OBJ32-NEXT: SymbolType: XTY_ER (0x0)48; OBJ32-NEXT: StorageMappingClass: XMC_TD (0x10)49; OBJ32-NEXT: StabInfoIndex: 0x050; OBJ32-NEXT: StabSectNum: 0x051; OBJ32-NEXT: }52; OBJ32-NEXT: }53; OBJ32: Symbol {54; OBJ32: Index: [[#NFA+9]]55; OBJ32-NEXT: Name: TOC56; OBJ32-NEXT: Value (RelocatableAddress): 0x2C57; OBJ32-NEXT: Section: .data58; OBJ32-NEXT: Type: 0x059; OBJ32-NEXT: StorageClass: C_HIDEXT (0x6B)60; OBJ32-NEXT: NumberOfAuxEntries: 161; OBJ32-NEXT: CSECT Auxiliary Entry {62; OBJ32-NEXT: Index: [[#NFA+10]]63; OBJ32-NEXT: SectionLen: 064; OBJ32-NEXT: ParameterHashIndex: 0x065; OBJ32-NEXT: TypeChkSectNum: 0x066; OBJ32-NEXT: SymbolAlignmentLog2: 267; OBJ32-NEXT: SymbolType: XTY_SD (0x1)68; OBJ32-NEXT: StorageMappingClass: XMC_TC0 (0xF)69; OBJ32-NEXT: StabInfoIndex: 0x070; OBJ32-NEXT: StabSectNum: 0x071; OBJ32-NEXT: }72; OBJ32-NEXT: }73 74; OBJ64: Relocations [75; OBJ64-NEXT: Section (index: 1) .text {76; OBJ64-NEXT: 0x2 R_TOC i([[#NFA+1]]) 0xF77; OBJ64-NEXT: }78; OBJ64-NEXT: Section (index: 2) .data {79; OBJ64-NEXT: 0x20 R_POS .get([[#NFA+5]]) 0x3F80; OBJ64-NEXT: 0x28 R_POS TOC([[#NFA+9]]) 0x3F81; OBJ64-NEXT: }82; OBJ64-NEXT: ]83 84; OBJ64: Symbol {85; OBJ64: Index: [[#NFA+1]]86; OBJ64-NEXT: Name: i87; OBJ64-NEXT: Value (RelocatableAddress): 0x088; OBJ64-NEXT: Section: N_UNDEF89; OBJ64-NEXT: Type: 0x090; OBJ64-NEXT: StorageClass: C_EXT (0x2)91; OBJ64-NEXT: NumberOfAuxEntries: 192; OBJ64-NEXT: CSECT Auxiliary Entry {93; OBJ64-NEXT: Index: [[#NFA+2]]94; OBJ64-NEXT: SectionLen: 095; OBJ64-NEXT: ParameterHashIndex: 0x096; OBJ64-NEXT: TypeChkSectNum: 0x097; OBJ64-NEXT: SymbolAlignmentLog2: 098; OBJ64-NEXT: SymbolType: XTY_ER (0x0)99; OBJ64-NEXT: StorageMappingClass: XMC_TD (0x10)100; OBJ64-NEXT: Auxiliary Type: AUX_CSECT (0xFB)101; OBJ64-NEXT: }102; OBJ64-NEXT: }103; OBJ64: Symbol {104; OBJ64: Index: [[#NFA+9]]105; OBJ64-NEXT: Name: TOC106; OBJ64-NEXT: Value (RelocatableAddress): 0x38107; OBJ64-NEXT: Section: .data108; OBJ64-NEXT: Type: 0x0109; OBJ64-NEXT: StorageClass: C_HIDEXT (0x6B)110; OBJ64-NEXT: NumberOfAuxEntries: 1111; OBJ64-NEXT: CSECT Auxiliary Entry {112; OBJ64-NEXT: Index: [[#NFA+10]]113; OBJ64-NEXT: SectionLen: 0114; OBJ64-NEXT: ParameterHashIndex: 0x0115; OBJ64-NEXT: TypeChkSectNum: 0x0116; OBJ64-NEXT: SymbolAlignmentLog2: 2117; OBJ64-NEXT: SymbolType: XTY_SD (0x1)118; OBJ64-NEXT: StorageMappingClass: XMC_TC0 (0xF)119; OBJ64-NEXT: Auxiliary Type: AUX_CSECT (0xFB)120; OBJ64-NEXT: }121; OBJ64-NEXT: }122