implement initial support for the silly X constraint. Testcase here: CodeGen/X86...
authorChris Lattner <sabre@nondot.org>
Sun, 25 Mar 2007 04:35:41 +0000 (04:35 +0000)
committerChris Lattner <sabre@nondot.org>
Sun, 25 Mar 2007 04:35:41 +0000 (04:35 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35327 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/SelectionDAG/TargetLowering.cpp

index 7433a79f9f4b0fd75831e12771310a9e0e79ebcb..ee9fa67fa409de01a4e93ab61adb855e2c8d191e 100644 (file)
@@ -1841,6 +1841,7 @@ TargetLowering::getConstraintType(const std::string &Constraint) const {
     case 'i':    // Simple Integer or Relocatable Constant
     case 'n':    // Simple Integer
     case 's':    // Relocatable Constant
+    case 'X':    // Allow ANY value.
     case 'I':    // Target registers.
     case 'J':
     case 'K':
@@ -1870,6 +1871,7 @@ SDOperand TargetLowering::isOperandValidForConstraint(SDOperand Op,
   case 'i':    // Simple Integer or Relocatable Constant
   case 'n':    // Simple Integer
   case 's':    // Relocatable Constant
+  case 'X':    // Allows any operand.
     // These are okay if the operand is either a global variable address or a
     // simple immediate value.  If we have one of these, map to the TargetXXX
     // version so that the value itself doesn't get selected.