1*9880d681SAndroid Build Coastguard Worker //===-- PPCMachineFunctionInfo.cpp - Private data used for PowerPC --------===// 2*9880d681SAndroid Build Coastguard Worker // 3*9880d681SAndroid Build Coastguard Worker // The LLVM Compiler Infrastructure 4*9880d681SAndroid Build Coastguard Worker // 5*9880d681SAndroid Build Coastguard Worker // This file is distributed under the University of Illinois Open Source 6*9880d681SAndroid Build Coastguard Worker // License. See LICENSE.TXT for details. 7*9880d681SAndroid Build Coastguard Worker // 8*9880d681SAndroid Build Coastguard Worker //===----------------------------------------------------------------------===// 9*9880d681SAndroid Build Coastguard Worker 10*9880d681SAndroid Build Coastguard Worker #include "PPCMachineFunctionInfo.h" 11*9880d681SAndroid Build Coastguard Worker #include "llvm/IR/DataLayout.h" 12*9880d681SAndroid Build Coastguard Worker #include "llvm/MC/MCContext.h" 13*9880d681SAndroid Build Coastguard Worker #include "llvm/Target/TargetMachine.h" 14*9880d681SAndroid Build Coastguard Worker #include "llvm/Target/TargetSubtargetInfo.h" 15*9880d681SAndroid Build Coastguard Worker 16*9880d681SAndroid Build Coastguard Worker using namespace llvm; 17*9880d681SAndroid Build Coastguard Worker anchor()18*9880d681SAndroid Build Coastguard Workervoid PPCFunctionInfo::anchor() { } 19*9880d681SAndroid Build Coastguard Worker getPICOffsetSymbol() const20*9880d681SAndroid Build Coastguard WorkerMCSymbol *PPCFunctionInfo::getPICOffsetSymbol() const { 21*9880d681SAndroid Build Coastguard Worker const DataLayout &DL = MF.getDataLayout(); 22*9880d681SAndroid Build Coastguard Worker return MF.getContext().getOrCreateSymbol(Twine(DL.getPrivateGlobalPrefix()) + 23*9880d681SAndroid Build Coastguard Worker Twine(MF.getFunctionNumber()) + 24*9880d681SAndroid Build Coastguard Worker "$poff"); 25*9880d681SAndroid Build Coastguard Worker } 26*9880d681SAndroid Build Coastguard Worker getGlobalEPSymbol() const27*9880d681SAndroid Build Coastguard WorkerMCSymbol *PPCFunctionInfo::getGlobalEPSymbol() const { 28*9880d681SAndroid Build Coastguard Worker const DataLayout &DL = MF.getDataLayout(); 29*9880d681SAndroid Build Coastguard Worker return MF.getContext().getOrCreateSymbol(Twine(DL.getPrivateGlobalPrefix()) + 30*9880d681SAndroid Build Coastguard Worker "func_gep" + 31*9880d681SAndroid Build Coastguard Worker Twine(MF.getFunctionNumber())); 32*9880d681SAndroid Build Coastguard Worker } 33*9880d681SAndroid Build Coastguard Worker getLocalEPSymbol() const34*9880d681SAndroid Build Coastguard WorkerMCSymbol *PPCFunctionInfo::getLocalEPSymbol() const { 35*9880d681SAndroid Build Coastguard Worker const DataLayout &DL = MF.getDataLayout(); 36*9880d681SAndroid Build Coastguard Worker return MF.getContext().getOrCreateSymbol(Twine(DL.getPrivateGlobalPrefix()) + 37*9880d681SAndroid Build Coastguard Worker "func_lep" + 38*9880d681SAndroid Build Coastguard Worker Twine(MF.getFunctionNumber())); 39*9880d681SAndroid Build Coastguard Worker } 40*9880d681SAndroid Build Coastguard Worker getTOCOffsetSymbol() const41*9880d681SAndroid Build Coastguard WorkerMCSymbol *PPCFunctionInfo::getTOCOffsetSymbol() const { 42*9880d681SAndroid Build Coastguard Worker const DataLayout &DL = MF.getDataLayout(); 43*9880d681SAndroid Build Coastguard Worker return MF.getContext().getOrCreateSymbol(Twine(DL.getPrivateGlobalPrefix()) + 44*9880d681SAndroid Build Coastguard Worker "func_toc" + 45*9880d681SAndroid Build Coastguard Worker Twine(MF.getFunctionNumber())); 46*9880d681SAndroid Build Coastguard Worker } 47