https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89093
--- Comment #8 from joseph at codesourcery dot com <joseph at codesourcery dot com> --- The Arm rule is that the EH machinery needs to avoid using VFP (or other non-core) registers so that the unwinder can save them on-demand only. See <http://infocenter.arm.com/help/topic/com.arm.doc.ihi0038b/IHI0038B_ehabi.pdf> section 4.7. This means the unwind support code in libgcc, and personality routines, need to be built not to use such registers (possibly with a series of -ffixed-* options). To complicate things, some of that code can end up calling memcpy. While __aeabi_memcpy is required to use core registers only, that doesn't apply to memcpy. (There are also possible glibc dynamic linker issues, <https://sourceware.org/bugzilla/show_bug.cgi?id=15792>.) I don't guarantee this issue with demand-saving of VFP registers is what's involved here, but it's a potential issue I identified when looking for Arm ABI issues in the GNU toolchain in 2008 (and included in a list of such issues sent to Arm in 2010).