diff options
author | Zoltan Varga <vargaz@gmail.com> | 2018-11-08 21:51:07 +0300 |
---|---|---|
committer | Imran Hameed <imhameed@microsoft.com> | 2021-06-03 00:02:30 +0300 |
commit | 4c9f365a4819594a68aee7022e20d2dd6706d698 (patch) | |
tree | a5ba8d729c535660df79436df710cfcf74e22e15 /llvm | |
parent | 0d5d5a5eab43f458fad11c98ae2529b043fd8448 (diff) |
Merge pull request #17 from lewurm/armv5-fix
[mono] respect FloatABIType, so it will work on armv5
Diffstat (limited to 'llvm')
-rw-r--r-- | llvm/lib/Target/ARM/ARMISelLowering.cpp | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/llvm/lib/Target/ARM/ARMISelLowering.cpp b/llvm/lib/Target/ARM/ARMISelLowering.cpp index 1d99f8c0e72f..32167233bd51 100644 --- a/llvm/lib/Target/ARM/ARMISelLowering.cpp +++ b/llvm/lib/Target/ARM/ARMISelLowering.cpp @@ -2038,13 +2038,14 @@ CCAssignFn *ARMTargetLowering::CCAssignFnForNode(CallingConv::ID CC, if (Return) { return CCAssignFnForNode(CallingConv::C, true, isVarArg); } else { - if (Subtarget->isAAPCS_ABI()) { - if (Subtarget->hasVFP2() && !Subtarget->isThumb1Only() && !isVarArg) - return CC_ARM_Mono_AAPCS_VFP; - else - return CC_ARM_Mono_AAPCS; - } else - return CC_ARM_Mono_APCS; + if (!Subtarget->isAAPCS_ABI()) + return CC_ARM_Mono_APCS; + else if (Subtarget->hasVFP2() && !Subtarget->isThumb1Only() && + getTargetMachine().Options.FloatABIType == FloatABI::Hard && + !isVarArg) + return CC_ARM_Mono_AAPCS_VFP; + else + return CC_ARM_Mono_AAPCS; } } } |