svn commit: r275380 - head/contrib/gcc/config/arm
Andrew Turner
andrew at FreeBSD.org
Mon Dec 1 21:13:48 UTC 2014
Author: andrew
Date: Mon Dec 1 21:13:47 2014
New Revision: 275380
URL: https://svnweb.freebsd.org/changeset/base/275380
Log:
Use the floating-point instruction on ARMv7 as the clang 3.5 integrated
assembler doesn't allow these two instructions to use co-processor 11.
MFC after: 1 Week
Sponsored by: ABT Systems Ltd
Modified:
head/contrib/gcc/config/arm/libunwind.S
Modified: head/contrib/gcc/config/arm/libunwind.S
==============================================================================
--- head/contrib/gcc/config/arm/libunwind.S Mon Dec 1 21:07:36 2014 (r275379)
+++ head/contrib/gcc/config/arm/libunwind.S Mon Dec 1 21:13:47 2014 (r275380)
@@ -26,6 +26,13 @@
the Free Software Foundation, 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA. */
+#include <machine/acle-compat.h>
+
+/* Allow the use of VFP instructions */
+#if __ARM_ARCH >= 7
+.fpu vfp
+#endif
+
#ifndef __symbian__
#include "lib1funcs.asm"
@@ -66,14 +73,22 @@ ARM_FUNC_START restore_core_regs
ARM_FUNC_START gnu_Unwind_Restore_VFP
/* Use the generic coprocessor form so that gas doesn't complain
on soft-float targets. */
+#if __ARM_ARCH >= 7
+ fldmiax r0, {d0-d15}
+#else
ldc p11,cr0,[r0],{0x21} /* fldmiax r0, {d0-d15} */
+#endif
RET
/* Store VFR regsters d0-d15 to the address in r0. */
ARM_FUNC_START gnu_Unwind_Save_VFP
/* Use the generic coprocessor form so that gas doesn't complain
on soft-float targets. */
+#if __ARM_ARCH >= 7
+ fstmiax r0, {d0-d15}
+#else
stc p11,cr0,[r0],{0x21} /* fstmiax r0, {d0-d15} */
+#endif
RET
/* Wrappers to save core registers, then call the real routine. */
More information about the svn-src-head
mailing list