summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorBrian Gaeke <gaeke@uiuc.edu>2004-10-29 21:42:27 +0000
committerBrian Gaeke <gaeke@uiuc.edu>2004-10-29 21:42:27 +0000
commit6254a798cab67f5c33446cdb10410af302a71e4c (patch)
tree2d408766c694a691c73c43ee5fed7041a8fd00d2 /llvm/lib
parent3415c77f59342677d8ee56ea6c551152b2e326fd (diff)
downloadbcm5719-llvm-6254a798cab67f5c33446cdb10410af302a71e4c.tar.gz
bcm5719-llvm-6254a798cab67f5c33446cdb10410af302a71e4c.zip
Remove dependency on MRegisterInfo::getRegClass
llvm-svn: 17346
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Target/SparcV8/SparcV8RegisterInfo.cpp17
1 files changed, 15 insertions, 2 deletions
diff --git a/llvm/lib/Target/SparcV8/SparcV8RegisterInfo.cpp b/llvm/lib/Target/SparcV8/SparcV8RegisterInfo.cpp
index f09b1aff960..fe7aa2f879b 100644
--- a/llvm/lib/Target/SparcV8/SparcV8RegisterInfo.cpp
+++ b/llvm/lib/Target/SparcV8/SparcV8RegisterInfo.cpp
@@ -25,10 +25,23 @@ SparcV8RegisterInfo::SparcV8RegisterInfo()
: SparcV8GenRegisterInfo(V8::ADJCALLSTACKDOWN,
V8::ADJCALLSTACKUP) {}
+static const TargetRegisterClass *getClass(unsigned SrcReg) {
+ if (SparcV8::IntRegsRegisterClass->contains(SrcReg))
+ return SparcV8::IntRegsRegisterClass;
+ else if (SparcV8::FPRegsRegisterClass->contains(SrcReg))
+ return SparcV8::FPRegsRegisterClass;
+ else if (SparcV8::DFPRegsRegisterClass->contains(SrcReg))
+ return SparcV8::DFPRegsRegisterClass;
+ else {
+ std::cerr << "Error: register of unknown class found: " << SrcReg << "\n";
+ abort ();
+ }
+}
+
void SparcV8RegisterInfo::
storeRegToStackSlot(MachineBasicBlock &MBB, MachineBasicBlock::iterator I,
unsigned SrcReg, int FrameIdx) const {
- const TargetRegisterClass *RC = getRegClass(SrcReg);
+ const TargetRegisterClass *RC = getClass(SrcReg);
// On the order of operands here: think "[FrameIdx + 0] = SrcReg".
if (RC == SparcV8::IntRegsRegisterClass)
@@ -47,7 +60,7 @@ storeRegToStackSlot(MachineBasicBlock &MBB, MachineBasicBlock::iterator I,
void SparcV8RegisterInfo::
loadRegFromStackSlot(MachineBasicBlock &MBB, MachineBasicBlock::iterator I,
unsigned DestReg, int FrameIdx) const {
- const TargetRegisterClass *RC = getRegClass(DestReg);
+ const TargetRegisterClass *RC = getClass(DestReg);
if (RC == SparcV8::IntRegsRegisterClass)
BuildMI (MBB, I, V8::LD, 2, DestReg).addFrameIndex (FrameIdx).addSImm (0);
else if (RC == SparcV8::FPRegsRegisterClass)
OpenPOWER on IntegriCloud