summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
authorEric Christopher <echristo@apple.com>2010-10-23 09:37:17 +0000
committerEric Christopher <echristo@apple.com>2010-10-23 09:37:17 +0000
commitc9616f26bd20e573c0a881a6d7c98584e1277af9 (patch)
tree2486cbc8548f34cfb399e28abf3ab28a6c8c98c4 /llvm
parent34402c4fe496afafd4a1a5628538368d6477648a (diff)
downloadbcm5719-llvm-c9616f26bd20e573c0a881a6d7c98584e1277af9.tar.gz
bcm5719-llvm-c9616f26bd20e573c0a881a6d7c98584e1277af9.zip
Move rejection of NEON parameters earlier in fast isel call processing,
note that we can actually handle some f64 arguments. llvm-svn: 117209
Diffstat (limited to 'llvm')
-rw-r--r--llvm/lib/Target/ARM/ARMFastISel.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/llvm/lib/Target/ARM/ARMFastISel.cpp b/llvm/lib/Target/ARM/ARMFastISel.cpp
index 85d28f9b044..bbaa308ee81 100644
--- a/llvm/lib/Target/ARM/ARMFastISel.cpp
+++ b/llvm/lib/Target/ARM/ARMFastISel.cpp
@@ -1314,6 +1314,10 @@ bool ARMFastISel::ProcessCallArgs(SmallVectorImpl<Value*> &Args,
unsigned Arg = ArgRegs[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.
switch (VA.getLocInfo()) {
case CCValAssign::Full: break;
@@ -1334,9 +1338,6 @@ bool ARMFastISel::ProcessCallArgs(SmallVectorImpl<Value*> &Args,
break;
}
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(),
Arg, ArgVT, Arg);
if (!Emitted)
OpenPOWER on IntegriCloud