diff options
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/Target/ARM/ARMCallLowering.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/llvm/lib/Target/ARM/ARMCallLowering.cpp b/llvm/lib/Target/ARM/ARMCallLowering.cpp index f37d6d7b1d0..34b81681948 100644 --- a/llvm/lib/Target/ARM/ARMCallLowering.cpp +++ b/llvm/lib/Target/ARM/ARMCallLowering.cpp @@ -35,7 +35,7 @@ ARMCallLowering::ARMCallLowering(const ARMTargetLowering &TLI) static bool isSupportedType(const DataLayout &DL, const ARMTargetLowering &TLI, Type *T) { EVT VT = TLI.getValueType(DL, T, true); - if (!VT.isSimple() || !VT.isInteger() || VT.isVector()) + if (!VT.isSimple() || VT.isVector()) return false; unsigned VTSize = VT.getSimpleVT().getSizeInBits(); @@ -205,7 +205,13 @@ bool ARMCallLowering::lowerFormalArguments(MachineIRBuilder &MIRBuilder, auto DL = MF.getDataLayout(); auto &TLI = *getTLI<ARMTargetLowering>(); - if (TLI.getSubtarget()->isThumb()) + auto Subtarget = TLI.getSubtarget(); + + if (Subtarget->isThumb()) + return false; + + // FIXME: Support soft float (when we're ready to generate libcalls) + if (Subtarget->useSoftFloat() || !Subtarget->hasVFP2()) return false; auto &Args = F.getArgumentList(); |