Move rejection of NEON parameters earlier in fast isel call processing,

note that we can actually handle some f64 arguments.

llvm-svn: 117209
This commit is contained in:
Eric Christopher 2010-10-23 09:37:17 +00:00
parent 34402c4fe4
commit c9616f26bd
1 changed files with 4 additions and 3 deletions

View File

@ -1314,6 +1314,10 @@ bool ARMFastISel::ProcessCallArgs(SmallVectorImpl<Value*> &Args,
unsigned Arg = ArgRegs[VA.getValNo()]; unsigned Arg = ArgRegs[VA.getValNo()];
EVT ArgVT = ArgVTs[VA.getValNo()]; EVT ArgVT = ArgVTs[VA.getValNo()];
// We don't handle NEON parameters yet.
if (VA.getLocVT().isVector() && VA.getLocVT().getSizeInBits() > 64)
return false;
// Handle arg promotion, etc. // Handle arg promotion, etc.
switch (VA.getLocInfo()) { switch (VA.getLocInfo()) {
case CCValAssign::Full: break; case CCValAssign::Full: break;
@ -1334,9 +1338,6 @@ bool ARMFastISel::ProcessCallArgs(SmallVectorImpl<Value*> &Args,
break; break;
} }
case CCValAssign::AExt: { case CCValAssign::AExt: {
// We don't handle NEON or f64 parameters yet.
if (VA.getLocVT().isVector() && VA.getLocVT().getSizeInBits() >= 64)
return false;
bool Emitted = FastEmitExtend(ISD::ANY_EXTEND, VA.getLocVT(), bool Emitted = FastEmitExtend(ISD::ANY_EXTEND, VA.getLocVT(),
Arg, ArgVT, Arg); Arg, ArgVT, Arg);
if (!Emitted) if (!Emitted)