[llvm-branch-commits] [compiler-rt-branch] r311606 - Merging r311555:
Hans Wennborg via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Wed Aug 23 14:38:59 PDT 2017
Author: hans
Date: Wed Aug 23 14:38:59 2017
New Revision: 311606
URL: http://llvm.org/viewvc/llvm-project?rev=311606&view=rev
Log:
Merging r311555:
------------------------------------------------------------------------
r311555 | oleg | 2017-08-23 07:26:31 -0700 (Wed, 23 Aug 2017) | 14 lines
[ARM][Compiler-rt] Fix AEABI builtins to correctly pass arguments to non-AEABI functions on HF targets
Summary:
This is a patch for PR34167.
On HF targets functions like `__{eq,lt,le,ge,gt}df2` and `__{eq,lt,le,ge,gt}sf2` expect their arguments to be passed in d/s registers, while some of the AEABI builtins pass them in r registers.
Reviewers: compnerd, peter.smith, asl
Reviewed By: peter.smith, asl
Subscribers: peter.smith, aemerson, dberris, javed.absar, llvm-commits, asl, kristof.beyls
Differential Revision: https://reviews.llvm.org/D36675
------------------------------------------------------------------------
Modified:
compiler-rt/branches/release_50/ (props changed)
compiler-rt/branches/release_50/lib/builtins/arm/aeabi_dcmp.S
compiler-rt/branches/release_50/lib/builtins/arm/aeabi_fcmp.S
Propchange: compiler-rt/branches/release_50/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Aug 23 14:38:59 2017
@@ -1 +1 @@
-/compiler-rt/trunk:311495-311496
+/compiler-rt/trunk:311495-311496,311555
Modified: compiler-rt/branches/release_50/lib/builtins/arm/aeabi_dcmp.S
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/branches/release_50/lib/builtins/arm/aeabi_dcmp.S?rev=311606&r1=311605&r2=311606&view=diff
==============================================================================
--- compiler-rt/branches/release_50/lib/builtins/arm/aeabi_dcmp.S (original)
+++ compiler-rt/branches/release_50/lib/builtins/arm/aeabi_dcmp.S Wed Aug 23 14:38:59 2017
@@ -18,11 +18,20 @@
// }
// }
+#if defined(COMPILER_RT_ARMHF_TARGET)
+# define CONVERT_DCMP_ARGS_TO_DF2_ARGS \
+ vmov d0, r0, r1 SEPARATOR \
+ vmov d1, r2, r3
+#else
+# define CONVERT_DCMP_ARGS_TO_DF2_ARGS
+#endif
+
#define DEFINE_AEABI_DCMP(cond) \
.syntax unified SEPARATOR \
.p2align 2 SEPARATOR \
DEFINE_COMPILERRT_FUNCTION(__aeabi_dcmp ## cond) \
push { r4, lr } SEPARATOR \
+ CONVERT_DCMP_ARGS_TO_DF2_ARGS SEPARATOR \
bl SYMBOL_NAME(__ ## cond ## df2) SEPARATOR \
cmp r0, #0 SEPARATOR \
b ## cond 1f SEPARATOR \
Modified: compiler-rt/branches/release_50/lib/builtins/arm/aeabi_fcmp.S
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/branches/release_50/lib/builtins/arm/aeabi_fcmp.S?rev=311606&r1=311605&r2=311606&view=diff
==============================================================================
--- compiler-rt/branches/release_50/lib/builtins/arm/aeabi_fcmp.S (original)
+++ compiler-rt/branches/release_50/lib/builtins/arm/aeabi_fcmp.S Wed Aug 23 14:38:59 2017
@@ -18,11 +18,20 @@
// }
// }
+#if defined(COMPILER_RT_ARMHF_TARGET)
+# define CONVERT_FCMP_ARGS_TO_SF2_ARGS \
+ vmov s0, r0 SEPARATOR \
+ vmov s1, r1
+#else
+# define CONVERT_FCMP_ARGS_TO_SF2_ARGS
+#endif
+
#define DEFINE_AEABI_FCMP(cond) \
.syntax unified SEPARATOR \
.p2align 2 SEPARATOR \
DEFINE_COMPILERRT_FUNCTION(__aeabi_fcmp ## cond) \
push { r4, lr } SEPARATOR \
+ CONVERT_FCMP_ARGS_TO_SF2_ARGS SEPARATOR \
bl SYMBOL_NAME(__ ## cond ## sf2) SEPARATOR \
cmp r0, #0 SEPARATOR \
b ## cond 1f SEPARATOR \
More information about the llvm-branch-commits
mailing list