From: Andrew Lenharth Date: Thu, 17 Aug 2006 16:07:50 +0000 (+0000) Subject: Add the 'c' constraint as needed by the linux kernel X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=d337295fb0f724d9da1e029260f68ef09b25e1fe;p=oota-llvm.git Add the 'c' constraint as needed by the linux kernel git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29747 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/X86/X86ISelLowering.cpp b/lib/Target/X86/X86ISelLowering.cpp index e1e3ef38f95..7a479599342 100644 --- a/lib/Target/X86/X86ISelLowering.cpp +++ b/lib/Target/X86/X86ISelLowering.cpp @@ -4186,6 +4186,7 @@ X86TargetLowering::getConstraintType(char ConstraintLetter) const { case 'Y': case 'S': case 'D': + case 'c': return C_RegisterClass; default: return TargetLowering::getConstraintType(ConstraintLetter); } @@ -4201,11 +4202,15 @@ getRegClassForInlineAsmConstraint(const std::string &Constraint, default: break; // Unknown constraint letter case 'S': // ESI if (VT == MVT::i32) - return make_vector(X86::ESI,0); + return make_vector(X86::ESI,0); break; case 'D': // EDI if (VT == MVT::i32) - return make_vector(X86::EDI,0); + return make_vector(X86::EDI,0); + break; + case 'c': // ECX + if (VT == MVT::i32) + return make_vector(X86::ECX, 0); break; case 'A': // EAX/EDX if (VT == MVT::i32 || VT == MVT::i64)