diff options
author | Peter Smith <peter.smith@linaro.org> | 2017-07-27 09:57:13 +0000 |
---|---|---|
committer | Peter Smith <peter.smith@linaro.org> | 2017-07-27 09:57:13 +0000 |
commit | c03956cf73d0406f7e70a399faae803cde9a177c (patch) | |
tree | a314cd302310a4c80cade7e20d119031bcb474b5 /clang/lib/CodeGen/TargetInfo.cpp | |
parent | 13f7dcdbc30dfb34fc5592609cb44ccc879c992c (diff) | |
download | bcm5719-llvm-c03956cf73d0406f7e70a399faae803cde9a177c.tar.gz bcm5719-llvm-c03956cf73d0406f7e70a399faae803cde9a177c.zip |
[CodeGen][ARM] Revert r309257
The test arm-float-helpers.c appears to be failing on some builders and
needs some work to make it more robust.
llvm-svn: 309259
Diffstat (limited to 'clang/lib/CodeGen/TargetInfo.cpp')
-rw-r--r-- | clang/lib/CodeGen/TargetInfo.cpp | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/clang/lib/CodeGen/TargetInfo.cpp b/clang/lib/CodeGen/TargetInfo.cpp index 12341431ac0..b07326e06d9 100644 --- a/clang/lib/CodeGen/TargetInfo.cpp +++ b/clang/lib/CodeGen/TargetInfo.cpp @@ -5620,14 +5620,17 @@ void ARMABIInfo::setCCs() { // AAPCS apparently requires runtime support functions to be soft-float, but // that's almost certainly for historic reasons (Thumb1 not supporting VFP // most likely). It's more convenient for AAPCS16_VFP to be hard-float. - - // The Run-time ABI for the ARM Architecture section 4.1.2 requires - // AEABI-complying FP helper functions to use the base AAPCS. - // These AEABI functions are expanded in the ARM llvm backend, all the builtin - // support functions emitted by clang such as the _Complex helpers follow the - // abiCC. - if (abiCC != getLLVMDefaultCC()) + switch (getABIKind()) { + case APCS: + case AAPCS16_VFP: + if (abiCC != getLLVMDefaultCC()) BuiltinCC = abiCC; + break; + case AAPCS: + case AAPCS_VFP: + BuiltinCC = llvm::CallingConv::ARM_AAPCS; + break; + } } ABIArgInfo ARMABIInfo::classifyArgumentType(QualType Ty, |