[mips] Define a function which returns the GPR register class.
authorAkira Hatanaka <ahatanaka@mips.com>
Fri, 29 Mar 2013 19:17:42 +0000 (19:17 +0000)
committerAkira Hatanaka <ahatanaka@mips.com>
Fri, 29 Mar 2013 19:17:42 +0000 (19:17 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178359 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/Mips/Mips16RegisterInfo.cpp
lib/Target/Mips/Mips16RegisterInfo.h
lib/Target/Mips/MipsRegisterInfo.h
lib/Target/Mips/MipsSERegisterInfo.cpp
lib/Target/Mips/MipsSERegisterInfo.h

index 0ea93689490d2249e23b8e4ee73c35d50e726c84..6cca2276856d2ef10c756ee09a0df5857f7b3884 100644 (file)
@@ -72,6 +72,12 @@ bool Mips16RegisterInfo::saveScavengerRegister
   return true;
 }
 
+const TargetRegisterClass *
+Mips16RegisterInfo::intRegClass(unsigned Size) const {
+  assert(Size == 4);
+  return &Mips::CPU16RegsRegClass;
+}
+
 void Mips16RegisterInfo::eliminateFI(MachineBasicBlock::iterator II,
                                      unsigned OpNo, int FrameIndex,
                                      uint64_t StackSize,
index b8f818a478d5d26ca3293fbd0aed49efdc379764..2b3d2b1a4ecb2bb1880fd2423d0b8bf20c1008cf 100644 (file)
@@ -37,6 +37,8 @@ public:
                                      const TargetRegisterClass *RC,
                                      unsigned Reg) const;
 
+  virtual const TargetRegisterClass *intRegClass(unsigned Size) const;
+
 private:
   virtual void eliminateFI(MachineBasicBlock::iterator II, unsigned OpNo,
                            int FrameIndex, uint64_t StackSize,
index 3c210e71bb7b050d2943eef4392c644be82993d1..5ed51241391fb49fc973e2121102385143faa89a 100644 (file)
@@ -68,6 +68,9 @@ public:
   unsigned getEHExceptionRegister() const;
   unsigned getEHHandlerRegister() const;
 
+  /// \brief Return GPR register class.
+  virtual const TargetRegisterClass *intRegClass(unsigned Size) const = 0;
+
 private:
   virtual void eliminateFI(MachineBasicBlock::iterator II, unsigned OpNo,
                            int FrameIndex, uint64_t StackSize,
index a39b393e4e0900165fc41d0c0de1ab1fd5fec038..96967380b29decc3c384cc97034fc3ccd4e7611e 100644 (file)
@@ -54,6 +54,15 @@ requiresFrameIndexScavenging(const MachineFunction &MF) const {
   return true;
 }
 
+const TargetRegisterClass *
+MipsSERegisterInfo::intRegClass(unsigned Size) const {
+  if (Size == 4)
+    return &Mips::CPURegsRegClass;
+
+  assert(Size == 8);
+  return &Mips::CPU64RegsRegClass;
+}
+
 void MipsSERegisterInfo::eliminateFI(MachineBasicBlock::iterator II,
                                      unsigned OpNo, int FrameIndex,
                                      uint64_t StackSize,
index f6827e96631081ab3e32d90582485f655245a357..2f7c37bb460d4eca600a57f165c415a9eadfcfe1 100644 (file)
@@ -31,6 +31,8 @@ public:
 
   bool requiresFrameIndexScavenging(const MachineFunction &MF) const;
 
+  virtual const TargetRegisterClass *intRegClass(unsigned Size) const;
+
 private:
   virtual void eliminateFI(MachineBasicBlock::iterator II, unsigned OpNo,
                            int FrameIndex, uint64_t StackSize,