[llvm-bugs] [Bug 34167] New: r291677 breaks AEABI comparison function on hard FP targets

via llvm-bugs llvm-bugs at lists.llvm.org
Fri Aug 11 18:12:24 PDT 2017


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: unassignedbugs at nondot.org
          Reporter: anton at korobeynikov.info
                CC: llvm-bugs at 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.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20170812/330d411c/attachment.html>


More information about the llvm-bugs mailing list