summaryrefslogtreecommitdiff
path: root/lib/builtins/truncsfhf2.c
diff options
context:
space:
mode:
authorSaleem Abdulrasool <compnerd@compnerd.org>2017-05-16 16:41:37 +0000
committerSaleem Abdulrasool <compnerd@compnerd.org>2017-05-16 16:41:37 +0000
commit99e2e66daf8d334858cec4f6e8e7a39d6a535a55 (patch)
treeb7f896c11740479b684921972559a2c12b3750b8 /lib/builtins/truncsfhf2.c
parent5c1b8654b63c99930f442de2e79b179e6150d725 (diff)
builtins: expand out the AEABI function stubs
These actually may change calling conventions. We cannot simply provide function aliases as the aliased function may have a different calling convention. Provide a forwarding function instead to permit the compiler to synthesize the calling convention adjustment thunk. Remove the `ARM_EABI_FNALIAS` macro as that is not safe to use. Resolves PR33030! git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@303188 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/builtins/truncsfhf2.c')
-rw-r--r--lib/builtins/truncsfhf2.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/lib/builtins/truncsfhf2.c b/lib/builtins/truncsfhf2.c
index 9d61895bf..f6ce1fa1d 100644
--- a/lib/builtins/truncsfhf2.c
+++ b/lib/builtins/truncsfhf2.c
@@ -11,8 +11,6 @@
#define DST_HALF
#include "fp_trunc_impl.inc"
-ARM_EABI_FNALIAS(f2h, truncsfhf2)
-
// Use a forwarding definition and noinline to implement a poor man's alias,
// as there isn't a good cross-platform way of defining one.
COMPILER_RT_ABI NOINLINE uint16_t __truncsfhf2(float a) {
@@ -22,3 +20,10 @@ COMPILER_RT_ABI NOINLINE uint16_t __truncsfhf2(float a) {
COMPILER_RT_ABI uint16_t __gnu_f2h_ieee(float a) {
return __truncsfhf2(a);
}
+
+#if defined(__ARM_EABI__)
+AEABI_RTABI uint16_t __aeabi_f2h(float a) {
+ return __truncsfhf2(a);
+}
+#endif
+