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

Reply via email to