Use enums instead of literals for X86 subregisters.
authorJakob Stoklund Olesen <stoklund@2pi.dk>
Tue, 25 May 2010 17:04:16 +0000 (17:04 +0000)
committerJakob Stoklund Olesen <stoklund@2pi.dk>
Tue, 25 May 2010 17:04:16 +0000 (17:04 +0000)
The cases in getMatchingSuperRegClass cannot be broken up until the enums have
unique values.

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

lib/Target/X86/X86InstrInfo.cpp
lib/Target/X86/X86RegisterInfo.cpp

index a7b75fa67ee8f9657337194b6a36092e322f8832..34e12cade2369fc151829b7ce87d74bd70ed616d 100644 (file)
@@ -744,17 +744,17 @@ X86InstrInfo::isCoalescableExtInstr(const MachineInstr &MI,
     case X86::MOVZX32rr8:
     case X86::MOVSX64rr8:
     case X86::MOVZX64rr8:
-      SubIdx = 1;
+      SubIdx = X86::sub_8bit;
       break;
     case X86::MOVSX32rr16:
     case X86::MOVZX32rr16:
     case X86::MOVSX64rr16:
     case X86::MOVZX64rr16:
-      SubIdx = 3;
+      SubIdx = X86::sub_16bit;
       break;
     case X86::MOVSX64rr32:
     case X86::MOVZX64rr32:
-      SubIdx = 4;
+      SubIdx = X86::sub_32bit;
       break;
     }
     return true;
index fac85c75d391cd548844d7c7637f5c5ad9062015..028d2a4dbceb16a328a5b9e74412e9750bfd47a4 100644 (file)
@@ -157,8 +157,8 @@ X86RegisterInfo::getMatchingSuperRegClass(const TargetRegisterClass *A,
                                           unsigned SubIdx) const {
   switch (SubIdx) {
   default: return 0;
-  case 1:
-    // 8-bit
+  case X86::sub_8bit:
+  //case X86::sub_ss:
     if (B == &X86::GR8RegClass) {
       if (A->getSize() == 2 || A->getSize() == 4 || A->getSize() == 8)
         return A;
@@ -194,8 +194,8 @@ X86RegisterInfo::getMatchingSuperRegClass(const TargetRegisterClass *A,
       return A;
     }
     break;
-  case 2:
-    // 8-bit hi
+  case X86::sub_8bit_hi:
+  //case X86::sub_sd:
     if (B == &X86::GR8_ABCD_HRegClass) {
       if (A == &X86::GR64RegClass || A == &X86::GR64_ABCDRegClass ||
           A == &X86::GR64_NOREXRegClass ||
@@ -212,8 +212,8 @@ X86RegisterInfo::getMatchingSuperRegClass(const TargetRegisterClass *A,
       return A;
     }
     break;
-  case 3:
-    // 16-bit
+  case X86::sub_16bit:
+  //case X86::sub_xmm:
     if (B == &X86::GR16RegClass) {
       if (A->getSize() == 4 || A->getSize() == 8)
         return A;
@@ -241,8 +241,7 @@ X86RegisterInfo::getMatchingSuperRegClass(const TargetRegisterClass *A,
       return A;
     }
     break;
-  case 4:
-    // 32-bit
+  case X86::sub_32bit:
     if (B == &X86::GR32RegClass || B == &X86::GR32_NOSPRegClass) {
       if (A->getSize() == 8)
         return A;