implement initial support for the silly X constraint. Testcase here: CodeGen/X86/2007-03-24-InlineAsmXConstraint.ll

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35327 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2007-03-25 04:35:41 +00:00
parent eab65a060c
commit c13dd1cf4c

View File

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