summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/TargetInfo.cpp
diff options
context:
space:
mode:
authorPeter Smith <peter.smith@linaro.org>2017-07-27 09:57:13 +0000
committerPeter Smith <peter.smith@linaro.org>2017-07-27 09:57:13 +0000
commitc03956cf73d0406f7e70a399faae803cde9a177c (patch)
treea314cd302310a4c80cade7e20d119031bcb474b5 /clang/lib/CodeGen/TargetInfo.cpp
parent13f7dcdbc30dfb34fc5592609cb44ccc879c992c (diff)
downloadbcm5719-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.cpp17
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,
OpenPOWER on IntegriCloud