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:
parent
34402c4fe4
commit
c9616f26bd
|
@ -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)
|
||||||
|
|
Loading…
Reference in New Issue