summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/TargetLoweringBase.cpp
diff options
context:
space:
mode:
authorAhmed Bougacha <ahmed.bougacha@gmail.com>2015-05-14 01:00:51 +0000
committerAhmed Bougacha <ahmed.bougacha@gmail.com>2015-05-14 01:00:51 +0000
commit6402ad27c01c9503a12d41d7e40646cf0d1f919f (patch)
tree228bc778c03aeaf4fa5c18fff6fee5f27bbf81d2 /llvm/lib/CodeGen/TargetLoweringBase.cpp
parent9a43d5be2f37c728d67dda5cb65ae3edda7a20e0 (diff)
downloadbcm5719-llvm-6402ad27c01c9503a12d41d7e40646cf0d1f919f.tar.gz
bcm5719-llvm-6402ad27c01c9503a12d41d7e40646cf0d1f919f.zip
[CodeGen] Use standard -not gnueabi- naming for f16 libcalls on Darwin.
Other targets probably should as well. Since r237161, compiler-rt has both, but I don't see why anything other than gnueabi would use a gnueabi naming scheme. llvm-svn: 237324
Diffstat (limited to 'llvm/lib/CodeGen/TargetLoweringBase.cpp')
-rw-r--r--llvm/lib/CodeGen/TargetLoweringBase.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/TargetLoweringBase.cpp b/llvm/lib/CodeGen/TargetLoweringBase.cpp
index 4dd279ede0d..1ca453aa09c 100644
--- a/llvm/lib/CodeGen/TargetLoweringBase.cpp
+++ b/llvm/lib/CodeGen/TargetLoweringBase.cpp
@@ -420,6 +420,14 @@ static void InitLibcallNames(const char **Names, const Triple &TT) {
// These are generally not available.
Names[RTLIB::STACKPROTECTOR_CHECK_FAIL] = nullptr;
}
+
+ // For f16/f32 conversions, Darwin uses the standard naming scheme, instead
+ // of the gnueabi-style __gnu_*_ieee.
+ // FIXME: What about other targets?
+ if (TT.isOSDarwin()) {
+ Names[RTLIB::FPEXT_F16_F32] = "__extendhfsf2";
+ Names[RTLIB::FPROUND_F32_F16] = "__truncsfhf2";
+ }
}
/// InitLibcallCallingConvs - Set default libcall CallingConvs.
OpenPOWER on IntegriCloud