196 lines · plain
1; RUN: llc -mcpu=ppc -mtriple powerpc-ibm-aix-xcoff < %s | FileCheck %s --check-prefix CHECK2; RUN: llc -mcpu=ppc -mtriple powerpc64-ibm-aix-xcoff < %s | FileCheck %s --check-prefix CHECK3 4; RUN: llc -filetype=obj -mcpu=ppc -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: llvm-objdump %t32.o -dr | FileCheck %s --check-prefix=DIS327 8; RUN: llc -filetype=obj -mcpu=ppc64 -mtriple powerpc64-ibm-aix-xcoff -verify-machineinstrs < %s -o %t64.o9; RUN: llvm-readobj %t64.o --syms --relocs | FileCheck %s -D#NFA=2 --check-prefix=OBJ6410; RUN: llvm-objdump %t64.o -dr | FileCheck %s --check-prefix=DIS6411 12@i1 = external constant i32 #013@i2 = constant ptr @i1 #014 15define i32 @read() {16 %1 = load i32, ptr @i1, align 417 ret i32 %118}19 20define ptr @retptr() {21 ret ptr @i222}23 24attributes #0 = { "toc-data" }25 26; CHECK: .read:27; CHECK: la 3, i1[TD](2)28 29; CHECK: .retptr:30; CHECK: la 3, i2[TD](2)31 32; CHECK-DAG: .toc33; CHECK: .extern i1[TD]34; CHECK: .csect i2[TD]35 36; OBJ32: Relocations [37; OBJ32-NEXT: Section (index: 1) .text {38; OBJ32-NEXT: 0x2 R_TOC i1([[#NFA+1]]) 0xF39; OBJ32-NEXT: 0x26 R_TOC i2([[#NFA+15]]) 0xF40; OBJ32-NEXT: }41; OBJ32-NEXT: Section (index: 2) .data {42; OBJ32-NEXT: 0x44 R_POS .read([[#NFA+5]]) 0x1F43; OBJ32-NEXT: 0x48 R_POS TOC([[#NFA+13]]) 0x1F44; OBJ32-NEXT: 0x50 R_POS .retptr([[#NFA+7]]) 0x1F45; OBJ32-NEXT: 0x54 R_POS TOC([[#NFA+13]]) 0x1F46; OBJ32-NEXT: 0x5C R_POS i1([[#NFA+1]]) 0x1F47; OBJ32-NEXT: }48; OBJ32-NEXT: ]49 50; OBJ32: Symbol {51; OBJ32: Index: [[#NFA+1]]52; OBJ32-NEXT: Name: i153; OBJ32-NEXT: Value (RelocatableAddress): 0x054; OBJ32-NEXT: Section: N_UNDEF55; OBJ32-NEXT: Type: 0x056; OBJ32-NEXT: StorageClass: C_EXT (0x2)57; OBJ32-NEXT: NumberOfAuxEntries: 158; OBJ32-NEXT: CSECT Auxiliary Entry {59; OBJ32-NEXT: Index: [[#NFA+2]]60; OBJ32-NEXT: SectionLen: 061; OBJ32-NEXT: ParameterHashIndex: 0x062; OBJ32-NEXT: TypeChkSectNum: 0x063; OBJ32-NEXT: SymbolAlignmentLog2: 064; OBJ32-NEXT: SymbolType: XTY_ER (0x0)65; OBJ32-NEXT: StorageMappingClass: XMC_TD (0x10)66; OBJ32-NEXT: StabInfoIndex: 0x067; OBJ32-NEXT: StabSectNum: 0x068; OBJ32-NEXT: }69; OBJ32-NEXT: }70; OBJ32: Symbol {71; OBJ32: Index: [[#NFA+13]]72; OBJ32-NEXT: Name: TOC73; OBJ32-NEXT: Value (RelocatableAddress): 0x5C74; OBJ32-NEXT: Section: .data75; OBJ32-NEXT: Type: 0x076; OBJ32-NEXT: StorageClass: C_HIDEXT (0x6B)77; OBJ32-NEXT: NumberOfAuxEntries: 178; OBJ32-NEXT: CSECT Auxiliary Entry {79; OBJ32-NEXT: Index: [[#NFA+14]]80; OBJ32-NEXT: SectionLen: 081; OBJ32-NEXT: ParameterHashIndex: 0x082; OBJ32-NEXT: TypeChkSectNum: 0x083; OBJ32-NEXT: SymbolAlignmentLog2: 284; OBJ32-NEXT: SymbolType: XTY_SD (0x1)85; OBJ32-NEXT: StorageMappingClass: XMC_TC0 (0xF)86; OBJ32-NEXT: StabInfoIndex: 0x087; OBJ32-NEXT: StabSectNum: 0x088; OBJ32-NEXT: }89; OBJ32-NEXT: }90; OBJ32: Symbol {91; OBJ32: Index: [[#NFA+15]]92; OBJ32-NEXT: Name: i293; OBJ32-NEXT: Value (RelocatableAddress): 0x5C94; OBJ32-NEXT: Section: .data95; OBJ32-NEXT: Type: 0x096; OBJ32-NEXT: StorageClass: C_EXT (0x2)97; OBJ32-NEXT: NumberOfAuxEntries: 198; OBJ32-NEXT: CSECT Auxiliary Entry {99; OBJ32-NEXT: Index: [[#NFA+16]]100; OBJ32-NEXT: SectionLen: 4101; OBJ32-NEXT: ParameterHashIndex: 0x0102; OBJ32-NEXT: TypeChkSectNum: 0x0103; OBJ32-NEXT: SymbolAlignmentLog2: 2104; OBJ32-NEXT: SymbolType: XTY_SD (0x1)105; OBJ32-NEXT: StorageMappingClass: XMC_TD (0x10)106; OBJ32-NEXT: StabInfoIndex: 0x0107; OBJ32-NEXT: StabSectNum: 0x0108; OBJ32-NEXT: }109; OBJ32-NEXT: }110 111; OBJ64: Relocations [112; OBJ64-NEXT: Section (index: 1) .text {113; OBJ64-NEXT: 0x2 R_TOC i1([[#NFA+1]]) 0xF114; OBJ64-NEXT: 0x26 R_TOC i2([[#NFA+15]]) 0xF115; OBJ64-NEXT: }116; OBJ64-NEXT: Section (index: 2) .data {117; OBJ64-NEXT: 0x48 R_POS .read([[#NFA+5]]) 0x3F118; OBJ64-NEXT: 0x50 R_POS TOC([[#NFA+13]]) 0x3F119; OBJ64-NEXT: 0x60 R_POS .retptr([[#NFA+7]]) 0x3F120; OBJ64-NEXT: 0x68 R_POS TOC([[#NFA+13]]) 0x3F121; OBJ64-NEXT: 0x78 R_POS i1([[#NFA+1]]) 0x3F122; OBJ64-NEXT: }123; OBJ64-NEXT: ]124 125; OBJ64: Symbol {126; OBJ64: Index: [[#NFA+1]]127; OBJ64-NEXT: Name: i1128; OBJ64-NEXT: Value (RelocatableAddress): 0x0129; OBJ64-NEXT: Section: N_UNDEF130; OBJ64-NEXT: Type: 0x0131; OBJ64-NEXT: StorageClass: C_EXT (0x2)132; OBJ64-NEXT: NumberOfAuxEntries: 1133; OBJ64-NEXT: CSECT Auxiliary Entry {134; OBJ64-NEXT: Index: [[#NFA+2]]135; OBJ64-NEXT: SectionLen: 0136; OBJ64-NEXT: ParameterHashIndex: 0x0137; OBJ64-NEXT: TypeChkSectNum: 0x0138; OBJ64-NEXT: SymbolAlignmentLog2: 0139; OBJ64-NEXT: SymbolType: XTY_ER (0x0)140; OBJ64-NEXT: StorageMappingClass: XMC_TD (0x10)141; OBJ64-NEXT: Auxiliary Type: AUX_CSECT (0xFB)142; OBJ64-NEXT: }143; OBJ64-NEXT: }144; OBJ64: Symbol {145; OBJ64: Index: [[#NFA+13]]146; OBJ64-NEXT: Name: TOC147; OBJ64-NEXT: Value (RelocatableAddress): 0x78148; OBJ64-NEXT: Section: .data149; OBJ64-NEXT: Type: 0x0150; OBJ64-NEXT: StorageClass: C_HIDEXT (0x6B)151; OBJ64-NEXT: NumberOfAuxEntries: 1152; OBJ64-NEXT: CSECT Auxiliary Entry {153; OBJ64-NEXT: Index: [[#NFA+14]]154; OBJ64-NEXT: SectionLen: 0155; OBJ64-NEXT: ParameterHashIndex: 0x0156; OBJ64-NEXT: TypeChkSectNum: 0x0157; OBJ64-NEXT: SymbolAlignmentLog2: 2158; OBJ64-NEXT: SymbolType: XTY_SD (0x1)159; OBJ64-NEXT: StorageMappingClass: XMC_TC0 (0xF)160; OBJ64-NEXT: Auxiliary Type: AUX_CSECT (0xFB)161; OBJ64-NEXT: }162; OBJ64-NEXT: }163; OBJ64: Symbol {164; OBJ64: Index: [[#NFA+15]]165; OBJ64-NEXT: Name: i2166; OBJ64-NEXT: Value (RelocatableAddress): 0x78167; OBJ64-NEXT: Section: .data168; OBJ64-NEXT: Type: 0x0169; OBJ64-NEXT: StorageClass: C_EXT (0x2)170; OBJ64-NEXT: NumberOfAuxEntries: 1171; OBJ64-NEXT: CSECT Auxiliary Entry {172; OBJ64-NEXT: Index: [[#NFA+16]]173; OBJ64-NEXT: SectionLen: 8174; OBJ64-NEXT: ParameterHashIndex: 0x0175; OBJ64-NEXT: TypeChkSectNum: 0x0176; OBJ64-NEXT: SymbolAlignmentLog2: 3177; OBJ64-NEXT: SymbolType: XTY_SD (0x1)178; OBJ64-NEXT: StorageMappingClass: XMC_TD (0x10)179; OBJ64-NEXT: Auxiliary Type: AUX_CSECT (0xFB)180; OBJ64-NEXT: }181; OBJ64-NEXT: }182 183; DIS32: 00000000 <.read>:184; DIS32-NEXT: 0: 38 62 00 00 addi 3, 2, 0185; DIS32-NEXT: 00000002: R_TOC i1186; DIS32: 00000024 <.retptr>:187; DIS32-NEXT: 24: 38 62 00 00 addi 3, 2, 0188; DIS32-NEXT: 00000026: R_TOC i2189 190; DIS64: 0000000000000000 <.read>:191; DIS64-NEXT: 0: 38 62 00 00 addi 3, 2, 0192; DIS64-NEXT: 0000000000000002: R_TOC i1193; DIS64: 0000000000000024 <.retptr>:194; DIS64-NEXT: 24: 38 62 00 00 addi 3, 2, 0195; DIS64-NEXT: 0000000000000026: R_TOC i2196