summaryrefslogtreecommitdiff
path: root/lib/builtins/fixunsdfdi.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/fixunsdfdi.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/fixunsdfdi.c')
-rw-r--r--lib/builtins/fixunsdfdi.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/lib/builtins/fixunsdfdi.c b/lib/builtins/fixunsdfdi.c
index 4b0bc9e1d..b73440970 100644
--- a/lib/builtins/fixunsdfdi.c
+++ b/lib/builtins/fixunsdfdi.c
@@ -11,8 +11,6 @@
#define DOUBLE_PRECISION
#include "fp_lib.h"
-ARM_EABI_FNALIAS(d2ulz, fixunsdfdi)
-
#ifndef __SOFT_FP__
/* Support for systems that have hardware floating-point; can set the invalid
* flag as a side-effect of computation.
@@ -42,3 +40,15 @@ __fixunsdfdi(fp_t a) {
}
#endif
+
+#if defined(__ARM_EABI__)
+AEABI_RTABI du_int
+#if defined(__SOFT_FP__)
+__aeabi_d2ulz(fp_t a) {
+#else
+__aeabi_d2ulz(double a) {
+#endif
+ return __fixunsdfdi(a);
+}
+#endif
+