https://bugs.llvm.org/show_bug.cgi?id=34167
Bug ID: 34167
Summary: r291677 breaks AEABI comparison function on hard FP
targets
Product: compiler-rt
Version: unspecified
Hardware: All
OS: All
Status: NEW
Severity: release blocker
Priority: P
Component: compiler-rt
Assignee: unassignedb...@nondot.org
Reporter: an...@korobeynikov.info
CC: llvm-bugs@lists.llvm.org
r291677 changes the calling convention of compiler builtin function on hard FP
targets. However, it seems that not all AEABI builtins were updated for this
new CC.
Consider __aeabi_fcmpeq. It received the arguments, as it should,
using the AAPCS calling convention in r0/r1, then __aeabi_fcmpeq directly calls
__eqsf2. But on HF target we'll end with __eqsf2 that expects to receive
arguments in s0/s1 and latter does:
+#if defined(COMPILER_RT_ARMHF_TARGET)
+ vmov r0, s0
+ vmov r1, s1
+#endif
trashing the contents of r0/r1 with whatever values were in s0/s1.
This affects both ToT, 4.0 and 5.0
--
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs