-
Notifications
You must be signed in to change notification settings - Fork 15.3k
Closed
Labels
Description
| Bugzilla Link | 34167 |
| Resolution | FIXED |
| Resolved on | Aug 23, 2017 14:39 |
| Version | unspecified |
| OS | All |
| Blocks | #32377 #33196 |
| CC | @asl,@compnerd,@zmodem |
Extended Description
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