Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 14 Dec 2014 18:01:10 +0000 (UTC)
From:      Andrew Turner <andrew@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject:   svn commit: r275771 - stable/10/contrib/gcc/config/arm
Message-ID:  <201412141801.sBEI1AWk013677@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: andrew
Date: Sun Dec 14 18:01:09 2014
New Revision: 275771
URL: https://svnweb.freebsd.org/changeset/base/275771

Log:
  MFC 275337:
  
  There is no need to use FUNC_END with aeabi_ldiv0 or aeabi_idiv0 as they
  are aliases.
  
  Sponsored by:	ABT Systems Ltd
  
  MFC 275380:
  
  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.
  
  Sponsored by:	ABT Systems Ltd

Modified:
  stable/10/contrib/gcc/config/arm/lib1funcs.asm
  stable/10/contrib/gcc/config/arm/libunwind.S
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/contrib/gcc/config/arm/lib1funcs.asm
==============================================================================
--- stable/10/contrib/gcc/config/arm/lib1funcs.asm	Sun Dec 14 17:38:43 2014	(r275770)
+++ stable/10/contrib/gcc/config/arm/lib1funcs.asm	Sun Dec 14 18:01:09 2014	(r275771)
@@ -980,8 +980,6 @@ LSYM(Lover12):
 
 	RET
 
-	FUNC_END aeabi_ldiv0
-	FUNC_END aeabi_idiv0
 	FUNC_END div0
 	
 #endif /* L_divmodsi_tools */

Modified: stable/10/contrib/gcc/config/arm/libunwind.S
==============================================================================
--- stable/10/contrib/gcc/config/arm/libunwind.S	Sun Dec 14 17:38:43 2014	(r275770)
+++ stable/10/contrib/gcc/config/arm/libunwind.S	Sun Dec 14 18:01:09 2014	(r275771)
@@ -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.   */



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201412141801.sBEI1AWk013677>