summaryrefslogtreecommitdiff
path: root/lib/libcompiler_rt/arm/floatunssidfvfp.S
diff options
context:
space:
mode:
authorPatrick Wildt <patrick@cvs.openbsd.org>2017-12-26 20:59:46 +0000
committerPatrick Wildt <patrick@cvs.openbsd.org>2017-12-26 20:59:46 +0000
commitd8478f94377c30b0c1fd017df878b0a40e2c6d45 (patch)
tree8f02c87bb22bffc9887e21546e1f485d544bc872 /lib/libcompiler_rt/arm/floatunssidfvfp.S
parent0a06862e4c4f094c66df855ee85b0cdd097e0240 (diff)
Update to compiler-rt 5.0.1.
ok kettenis@
Diffstat (limited to 'lib/libcompiler_rt/arm/floatunssidfvfp.S')
-rw-r--r--lib/libcompiler_rt/arm/floatunssidfvfp.S5
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/libcompiler_rt/arm/floatunssidfvfp.S b/lib/libcompiler_rt/arm/floatunssidfvfp.S
index 2a59fdb830b..d7a7024a25b 100644
--- a/lib/libcompiler_rt/arm/floatunssidfvfp.S
+++ b/lib/libcompiler_rt/arm/floatunssidfvfp.S
@@ -19,9 +19,14 @@
.syntax unified
.p2align 2
DEFINE_COMPILERRT_FUNCTION(__floatunssidfvfp)
+#if defined(COMPILER_RT_ARMHF_TARGET)
+ vmov s0, r0
+ vcvt.f64.u32 d0, s0
+#else
vmov s15, r0 // move int to float register s15
vcvt.f64.u32 d7, s15 // convert 32-bit int in s15 to double in d7
vmov r0, r1, d7 // move d7 to result register pair r0/r1
+#endif
bx lr
END_COMPILERRT_FUNCTION(__floatunssidfvfp)