Correct stack stuff for FP
authorAndrew Lenharth <andrewl@lenharth.org>
Tue, 1 Feb 2005 20:35:57 +0000 (20:35 +0000)
committerAndrew Lenharth <andrewl@lenharth.org>
Tue, 1 Feb 2005 20:35:57 +0000 (20:35 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19973 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/Alpha/AlphaRegisterInfo.cpp

index 055bf14d910020e6b442f46c82eeb9e360c85bcc..bd38fd40806f9ba40bb21dc2fe0a534ec1b0fb9d 100644 (file)
@@ -49,8 +49,12 @@ AlphaRegisterInfo::storeRegToStackSlot(MachineBasicBlock &MBB,
                                        unsigned SrcReg, int FrameIdx) const {
   //std::cerr << "Trying to store " << getPrettyName(SrcReg) << " to " << FrameIdx << "\n";
   //BuildMI(MBB, MI, Alpha::WTF, 0).addReg(SrcReg);
-  BuildMI(MBB, MI, Alpha::STQ, 3).addReg(SrcReg).addFrameIndex(FrameIdx).addReg(Alpha::F31);
-  //  assert(0 && "TODO");
+  if (getClass(SrcReg) == Alpha::FPRCRegisterClass)
+    BuildMI(MBB, MI, Alpha::STT, 3).addReg(SrcReg).addFrameIndex(FrameIdx).addReg(Alpha::F31);
+  else if (getClass(SrcReg) == Alpha::GPRCRegisterClass)
+    BuildMI(MBB, MI, Alpha::STQ, 3).addReg(SrcReg).addFrameIndex(FrameIdx).addReg(Alpha::F31);
+  else
+    abort();
 }
 
 void
@@ -58,9 +62,12 @@ AlphaRegisterInfo::loadRegFromStackSlot(MachineBasicBlock &MBB,
                                         MachineBasicBlock::iterator MI,
                                         unsigned DestReg, int FrameIdx) const{
   //std::cerr << "Trying to load " << getPrettyName(DestReg) << " to " << FrameIdx << "\n";
-  //BuildMI(MBB, MI, Alpha::WTF, 0, DestReg);
-  BuildMI(MBB, MI, Alpha::LDQ, 2, DestReg).addFrameIndex(FrameIdx).addReg(Alpha::F31);
-  //  assert(0 && "TODO");
+  if (getClass(DestReg) == Alpha::FPRCRegisterClass)
+    BuildMI(MBB, MI, Alpha::LDT, 2, DestReg).addFrameIndex(FrameIdx).addReg(Alpha::F31);
+  else if (getClass(DestReg) == Alpha::GPRCRegisterClass)
+    BuildMI(MBB, MI, Alpha::LDQ, 2, DestReg).addFrameIndex(FrameIdx).addReg(Alpha::F31);
+  else
+    abort();
 }
 
 void AlphaRegisterInfo::copyRegToReg(MachineBasicBlock &MBB,