Fix handling of 'g'. Closes 883
authorAndrew Lenharth <andrewl@lenharth.org>
Thu, 17 Aug 2006 17:50:12 +0000 (17:50 +0000)
committerAndrew Lenharth <andrewl@lenharth.org>
Thu, 17 Aug 2006 17:50:12 +0000 (17:50 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29750 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86ISelLowering.cpp

index 7a4795993425d5bee3293c4237685f2b680d427f..d9dd66d848ea794d4ebba67faf69a29b0a7f3529 100644 (file)
@@ -4187,6 +4187,9 @@ X86TargetLowering::getConstraintType(char ConstraintLetter) const {
   case 'S':
   case 'D':
   case 'c':
+  case 'g': //FIXME: This over-constrains g.  It should be replaced by rmi in
+            //       target independent code (I think this constraint is target
+            //       independent)
     return C_RegisterClass;
   default: return TargetLowering::getConstraintType(ConstraintLetter);
   }
@@ -4218,6 +4221,7 @@ getRegClassForInlineAsmConstraint(const std::string &Constraint,
       break;
     case 'r':   // GENERAL_REGS
     case 'R':   // LEGACY_REGS
+    case 'g':
       if (VT == MVT::i32)
         return make_vector<unsigned>(X86::EAX, X86::EDX, X86::ECX, X86::EBX,
                                      X86::ESI, X86::EDI, X86::EBP, X86::ESP, 0);