Make SparcV9RegInfo::getRegType() return the right answer for registers
authorBrian Gaeke <gaeke@uiuc.edu>
Wed, 21 Apr 2004 17:53:58 +0000 (17:53 +0000)
committerBrian Gaeke <gaeke@uiuc.edu>
Wed, 21 Apr 2004 17:53:58 +0000 (17:53 +0000)
of IntCC, FloatCC, and Special types.

Make SparcV9RegInfo::getRegClassIDOfRegType() return the right answer
if you ask for the class corresponding to SpecialRegType.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13095 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/SparcV9/SparcV9RegInfo.cpp

index 1c537030fc19b6db026552f4abd2697d2e951ece..89aad0495f64c35f37a48679a72335c88f66f755 100644 (file)
@@ -256,11 +256,11 @@ int SparcV9RegInfo::getRegType(int unifiedRegNum) const
     return FPSingleRegType;
   else if (unifiedRegNum < (64 + 32))
     return FPDoubleRegType;
-  else if (unifiedRegNum < (64+32+4))
-    return FloatCCRegType;
-  else if (unifiedRegNum < (64+32+4+2))  
-    return IntCCRegType;             
-  else if (unifiedRegNum < (64+32+4+2+1))  
+  else if (unifiedRegNum < (64+32+3))
+    return IntCCRegType;
+  else if (unifiedRegNum < (64+32+3+4))  
+    return FloatCCRegType;             
+  else if (unifiedRegNum < (64+32+3+4+1))  
     return SpecialRegType;             
   else 
     assert(0 && "Invalid unified register number in getRegType");
@@ -300,6 +300,7 @@ unsigned SparcV9RegInfo::getRegClassIDOfRegType(int regType) const {
   case FPDoubleRegType: return FloatRegClassID;
   case IntCCRegType:    return IntCCRegClassID;
   case FloatCCRegType:  return FloatCCRegClassID;
+  case SpecialRegType:  return SpecialRegClassID;
   default:
     assert(0 && "Invalid register type in getRegClassIDOfRegType");
     return 0;