[llvm-commits] [llvm] r131660 - in /llvm/trunk/lib/Target/Mips: MipsRegisterInfo.cpp MipsRegisterInfo.td

Akira Hatanaka ahatanak at gmail.com
Thu May 19 11:25:03 PDT 2011


Author: ahatanak
Date: Thu May 19 13:25:03 2011
New Revision: 131660

URL: http://llvm.org/viewvc/llvm-project?rev=131660&view=rev
Log:
Increase number of available registers when target is MIPS32.

Modified:
    llvm/trunk/lib/Target/Mips/MipsRegisterInfo.cpp
    llvm/trunk/lib/Target/Mips/MipsRegisterInfo.td

Modified: llvm/trunk/lib/Target/Mips/MipsRegisterInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Mips/MipsRegisterInfo.cpp?rev=131660&r1=131659&r2=131660&view=diff
==============================================================================
--- llvm/trunk/lib/Target/Mips/MipsRegisterInfo.cpp (original)
+++ llvm/trunk/lib/Target/Mips/MipsRegisterInfo.cpp Thu May 19 13:25:03 2011
@@ -110,8 +110,16 @@
     Mips::F20, Mips::F22, Mips::F24, Mips::F26, Mips::F28, Mips::F30, 0
   };
 
+  static const unsigned Mips32CalleeSavedRegs[] = {
+    Mips::S0, Mips::S1, Mips::S2, Mips::S3,
+    Mips::S4, Mips::S5, Mips::S6, Mips::S7,
+    Mips::D10, Mips::D11, Mips::D12, Mips::D13, Mips::D14, Mips::D15, 0
+  };
+
   if (Subtarget.isSingleFloat())
     return SingleFloatOnlyCalleeSavedRegs;
+  else if (Subtarget.isMips32())
+    return Mips32CalleeSavedRegs;
   else
     return BitMode32CalleeSavedRegs;
 }
@@ -129,7 +137,7 @@
   Reserved.set(Mips::RA);
 
   // SRV4 requires that odd register can't be used.
-  if (!Subtarget.isSingleFloat())
+  if (!Subtarget.isSingleFloat() && !Subtarget.isMips32())
     for (unsigned FReg=(Mips::F0)+1; FReg < Mips::F30; FReg+=2)
       Reserved.set(FReg);
 

Modified: llvm/trunk/lib/Target/Mips/MipsRegisterInfo.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Mips/MipsRegisterInfo.td?rev=131660&r1=131659&r2=131660&view=diff
==============================================================================
--- llvm/trunk/lib/Target/Mips/MipsRegisterInfo.td (original)
+++ llvm/trunk/lib/Target/Mips/MipsRegisterInfo.td Thu May 19 13:25:03 2011
@@ -214,7 +214,7 @@
       const TargetMachine &TM = MF.getTarget();
       const MipsSubtarget &Subtarget = TM.getSubtarget<MipsSubtarget>();
 
-      if (Subtarget.isSingleFloat())
+      if (Subtarget.isMips32() || Subtarget.isSingleFloat())
         return MIPS_FGR32;
       else
         return MIPS_SVR4_FGR32;
@@ -225,7 +225,7 @@
       const TargetMachine &TM = MF.getTarget();
       const MipsSubtarget &Subtarget = TM.getSubtarget<MipsSubtarget>();
 
-      if (Subtarget.isSingleFloat())
+      if (Subtarget.isMips32() || Subtarget.isSingleFloat())
         return MIPS_FGR32 + (sizeof(MIPS_FGR32) / sizeof(unsigned));
       else
         return MIPS_SVR4_FGR32 + (sizeof(MIPS_SVR4_FGR32) / sizeof(unsigned));





More information about the llvm-commits mailing list