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