mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-26 14:15:53 +00:00
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
This commit is contained in:
parent
c63e56ee5f
commit
d337295fb0
@ -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<unsigned>(X86::ESI,0);
|
||||
return make_vector<unsigned>(X86::ESI,0);
|
||||
break;
|
||||
case 'D': // EDI
|
||||
if (VT == MVT::i32)
|
||||
return make_vector<unsigned>(X86::EDI,0);
|
||||
return make_vector<unsigned>(X86::EDI,0);
|
||||
break;
|
||||
case 'c': // ECX
|
||||
if (VT == MVT::i32)
|
||||
return make_vector<unsigned>(X86::ECX, 0);
|
||||
break;
|
||||
case 'A': // EAX/EDX
|
||||
if (VT == MVT::i32 || VT == MVT::i64)
|
||||
|
Loading…
Reference in New Issue
Block a user