summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/CellSPU/MCTargetDesc/SPUMCTargetDesc.cpp
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2011-07-18 22:29:13 +0000
committerEvan Cheng <evan.cheng@apple.com>2011-07-18 22:29:13 +0000
commit67c033e6b8c935f28b22c1d79cc12d883d61e04d (patch)
treea1a6105b9e7270e69985aa268a95e774171f5cc5 /llvm/lib/Target/CellSPU/MCTargetDesc/SPUMCTargetDesc.cpp
parent11de9a966a34a7a50611c3179885fefe2c83e6b2 (diff)
downloadbcm5719-llvm-67c033e6b8c935f28b22c1d79cc12d883d61e04d.tar.gz
bcm5719-llvm-67c033e6b8c935f28b22c1d79cc12d883d61e04d.zip
Move getInitialFrameState from TargetFrameInfo to MCAsmInfo (suggestions for
better location welcome). llvm-svn: 135438
Diffstat (limited to 'llvm/lib/Target/CellSPU/MCTargetDesc/SPUMCTargetDesc.cpp')
-rw-r--r--llvm/lib/Target/CellSPU/MCTargetDesc/SPUMCTargetDesc.cpp14
1 files changed, 13 insertions, 1 deletions
diff --git a/llvm/lib/Target/CellSPU/MCTargetDesc/SPUMCTargetDesc.cpp b/llvm/lib/Target/CellSPU/MCTargetDesc/SPUMCTargetDesc.cpp
index 7d9b29531d6..3c4147bc9f6 100644
--- a/llvm/lib/Target/CellSPU/MCTargetDesc/SPUMCTargetDesc.cpp
+++ b/llvm/lib/Target/CellSPU/MCTargetDesc/SPUMCTargetDesc.cpp
@@ -13,6 +13,7 @@
#include "SPUMCTargetDesc.h"
#include "SPUMCAsmInfo.h"
+#include "llvm/MC/MachineLocation.h"
#include "llvm/MC/MCInstrInfo.h"
#include "llvm/MC/MCRegisterInfo.h"
#include "llvm/MC/MCSubtargetInfo.h"
@@ -62,6 +63,17 @@ extern "C" void LLVMInitializeCellSPUMCSubtargetInfo() {
createSPUMCSubtargetInfo);
}
+static MCAsmInfo *createSPUMCAsmInfo(const Target &T, StringRef TT) {
+ MCAsmInfo *MAI = new SPULinuxMCAsmInfo(T, TT);
+
+ // Initial state of the frame pointer is R1.
+ MachineLocation Dst(MachineLocation::VirtualFP);
+ MachineLocation Src(SPU::R1, 0);
+ MAI->addInitialFrameState(0, Dst, Src);
+
+ return MAI;
+}
+
extern "C" void LLVMInitializeCellSPUMCAsmInfo() {
- RegisterMCAsmInfo<SPULinuxMCAsmInfo> X(TheCellSPUTarget);
+ RegisterMCAsmInfoFn X(TheCellSPUTarget, createSPUMCAsmInfo);
}
OpenPOWER on IntegriCloud