1234285Sdim//===-- PPCMachineFunctionInfo.cpp - Private data used for PowerPC --------===// 2234285Sdim// 3234285Sdim// The LLVM Compiler Infrastructure 4234285Sdim// 5234285Sdim// This file is distributed under the University of Illinois Open Source 6234285Sdim// License. See LICENSE.TXT for details. 7234285Sdim// 8234285Sdim//===----------------------------------------------------------------------===// 9234285Sdim 10234285Sdim#include "PPCMachineFunctionInfo.h" 11276479Sdim#include "llvm/IR/DataLayout.h" 12270147Srdivacky#include "llvm/MC/MCContext.h" 13270147Srdivacky#include "llvm/Target/TargetMachine.h" 14280031Sdim#include "llvm/Target/TargetSubtargetInfo.h" 15234285Sdim 16234285Sdimusing namespace llvm; 17234285Sdim 18234285Sdimvoid PPCFunctionInfo::anchor() { } 19234285Sdim 20270147SrdivackyMCSymbol *PPCFunctionInfo::getPICOffsetSymbol() const { 21296417Sdim const DataLayout &DL = MF.getDataLayout(); 22296417Sdim return MF.getContext().getOrCreateSymbol(Twine(DL.getPrivateGlobalPrefix()) + 23288943Sdim Twine(MF.getFunctionNumber()) + 24288943Sdim "$poff"); 25270147Srdivacky} 26296417Sdim 27296417SdimMCSymbol *PPCFunctionInfo::getGlobalEPSymbol() const { 28296417Sdim const DataLayout &DL = MF.getDataLayout(); 29296417Sdim return MF.getContext().getOrCreateSymbol(Twine(DL.getPrivateGlobalPrefix()) + 30296417Sdim "func_gep" + 31296417Sdim Twine(MF.getFunctionNumber())); 32296417Sdim} 33296417Sdim 34296417SdimMCSymbol *PPCFunctionInfo::getLocalEPSymbol() const { 35296417Sdim const DataLayout &DL = MF.getDataLayout(); 36296417Sdim return MF.getContext().getOrCreateSymbol(Twine(DL.getPrivateGlobalPrefix()) + 37296417Sdim "func_lep" + 38296417Sdim Twine(MF.getFunctionNumber())); 39296417Sdim} 40296417Sdim 41296417SdimMCSymbol *PPCFunctionInfo::getTOCOffsetSymbol() const { 42296417Sdim const DataLayout &DL = MF.getDataLayout(); 43296417Sdim return MF.getContext().getOrCreateSymbol(Twine(DL.getPrivateGlobalPrefix()) + 44296417Sdim "func_toc" + 45296417Sdim Twine(MF.getFunctionNumber())); 46296417Sdim} 47