[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[commits] r9120 - in /fsf/trunk/ports: ./ sysdeps/arm/ sysdeps/arm/eabi/ sysdeps/arm/elf/ sysdeps/unix/sysv/linux/arm/eabi/



Author: eglibc
Date: Thu Oct 22 12:46:02 2009
New Revision: 9120

Log:
Import glibc-ports-mainline for 2009-10-22

Added:
    fsf/trunk/ports/sysdeps/arm/eabi/abi-note.S
    fsf/trunk/ports/sysdeps/unix/sysv/linux/arm/eabi/internal_accept4.S
Modified:
    fsf/trunk/ports/ChangeLog.arm
    fsf/trunk/ports/sysdeps/arm/eabi/__longjmp.S
    fsf/trunk/ports/sysdeps/arm/eabi/setjmp.S
    fsf/trunk/ports/sysdeps/arm/elf/start.S
    fsf/trunk/ports/sysdeps/arm/sysdep.h

Modified: fsf/trunk/ports/ChangeLog.arm
==============================================================================
--- fsf/trunk/ports/ChangeLog.arm (original)
+++ fsf/trunk/ports/ChangeLog.arm Thu Oct 22 12:46:02 2009
@@ -1,3 +1,26 @@
+2009-10-22  Daniel Gutson  <dgutson@xxxxxxxxxxxxxxxx>
+
+	* sysdeps/arm/sysdep.h: (Tag_ABI_align8_preserved,
+	Tag_ABI_align8_needed): Attributes added.
+	* sysdeps/arm/elf/start.S: Likewise.
+	* sysdeps/arm/eabi/abi-note.S: New file.
+	* sysdeps/unix/sysv/linux/arm/eabi/internal_accept4.S: New
+	file.
+
+2009-10-22  Andrew Stubbs  <ams@xxxxxxxxxxxxxxxx>
+            Julian Brown  <julian@xxxxxxxxxxxxxxxx>
+
+	* sysdeps/arm/eabi/setjmp.S (__sigsetjmp): Replace deprecated
+	instruction fstmiax with vstmia.
+	Correct register conflict and comment.
+	* sysdeps/arm/eabi/__longjmp.S (__longjmp): Use vldmia not fldmiax.
+	Don't clobber r1/a2 register before testing IWMMXT hwcap.
+
+2009-10-22  Julian Brown  <julian@xxxxxxxxxxxxxxxx>
+
+	* sysdeps/arm/elf/start.S (_start): Avoid dependency on PC pipeline
+	offset.
+
 2009-10-03  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
 
 	* sysdeps/unix/sysv/linux/arm/bits/fcntl.h: Define F_SETOWN_EX and

Modified: fsf/trunk/ports/sysdeps/arm/eabi/__longjmp.S
==============================================================================
--- fsf/trunk/ports/sysdeps/arm/eabi/__longjmp.S (original)
+++ fsf/trunk/ports/sysdeps/arm/eabi/__longjmp.S Thu Oct 22 12:46:02 2009
@@ -59,12 +59,12 @@
 	beq	Lno_vfp
 
 	/* Restore the VFP registers.  */
-	/* Following instruction is fldmiax ip!, {d8-d15}.  */
-	ldc	p11, cr8, [r12], #68
+	/* Following instruction is vldmia ip!, {d8-d15}.  */
+	ldc	p11, cr8, [r12], #64
 	/* Restore the floating-point status register.  */
-	ldr     r1, [ip], #4
-	/* Following instruction is fmxr fpscr, r1.  */
-	mcr	p10, 7, r1, cr1, cr0, 0
+	ldr     a3, [ip], #4
+	/* Following instruction is fmxr fpscr, a3.  */
+	mcr	p10, 7, a3, cr1, cr0, 0
 Lno_vfp:
 
 	tst	a2, #HWCAP_ARM_IWMMXT

Added: fsf/trunk/ports/sysdeps/arm/eabi/abi-note.S
==============================================================================
--- fsf/trunk/ports/sysdeps/arm/eabi/abi-note.S (added)
+++ fsf/trunk/ports/sysdeps/arm/eabi/abi-note.S Thu Oct 22 12:46:02 2009
@@ -1,0 +1,9 @@
+/* Tag_ABI_align8_preserved: This code preserves 8-byte
+   alignment in any callee.  */
+	.eabi_attribute 25, 1
+/* Tag_ABI_align8_needed: This code may require 8-byte alignment from
+   the caller.  */
+	.eabi_attribute 24, 1
+
+#include <csu/abi-note.S>
+

Modified: fsf/trunk/ports/sysdeps/arm/eabi/setjmp.S
==============================================================================
--- fsf/trunk/ports/sysdeps/arm/eabi/setjmp.S (original)
+++ fsf/trunk/ports/sysdeps/arm/eabi/setjmp.S Thu Oct 22 12:46:02 2009
@@ -52,13 +52,15 @@
 	tst	a3, #HWCAP_ARM_VFP
 	beq	Lno_vfp
 
-	/* Store the VFP registers.  */
-	/* Following instruction is fstmiax ip!, {d8-d15}.  */
-	stc	p11, cr8, [r12], #68
+	/* Store the VFP registers.
+	   Don't use VFP instructions directly because this code
+	   is used in non-VFP multilibs.  */
+	/* Following instruction is vstmia ip!, {d8-d15}.  */
+	stc	p11, cr8, [ip], #64
 	/* Store the floating-point status register.  */
-	/* Following instruction is fmrx r2, fpscr.  */
-	mrc	p10, 7, r2, cr1, cr0, 0
-	str	r2, [ip], #4
+	/* Following instruction is vmrs a4, fpscr.  */
+	mrc	p10, 7, a4, cr1, cr0, 0
+	str	a4, [ip], #4
 Lno_vfp:
 
 	tst	a3, #HWCAP_ARM_IWMMXT

Modified: fsf/trunk/ports/sysdeps/arm/elf/start.S
==============================================================================
--- fsf/trunk/ports/sysdeps/arm/elf/start.S (original)
+++ fsf/trunk/ports/sysdeps/arm/elf/start.S Thu Oct 22 12:46:02 2009
@@ -58,6 +58,16 @@
 		...
 					NULL
 */
+
+#if defined(__ARM_EABI__)
+/* Tag_ABI_align8_preserved: This code preserves 8-byte
+   alignment in any callee.  */
+	.eabi_attribute 25, 1
+/* Tag_ABI_align8_needed: This code may require 8-byte alignment from
+   the caller.  */
+	.eabi_attribute 24, 1
+#endif
+
 #if defined(__thumb2__)
 	.thumb
 	.syntax unified
@@ -87,8 +97,8 @@
 
 #ifdef SHARED
 	ldr sl, .L_GOT
-.L_GOT_OFF:
-	add sl, pc, sl
+	adr a4, .L_GOT
+	add sl, sl, a4
 
 	ldr ip, .L_GOT+4	/* __libc_csu_fini */
 	ldr ip, [sl, ip]
@@ -125,7 +135,7 @@
 
 #ifdef SHARED
 .L_GOT:
-	.word _GLOBAL_OFFSET_TABLE_-(.L_GOT_OFF+8)
+	.word _GLOBAL_OFFSET_TABLE_ - .L_GOT
 	.word __libc_csu_fini(GOT)
 	.word __libc_csu_init(GOT)
 	.word main(GOT)

Modified: fsf/trunk/ports/sysdeps/arm/sysdep.h
==============================================================================
--- fsf/trunk/ports/sysdeps/arm/sysdep.h (original)
+++ fsf/trunk/ports/sysdeps/arm/sysdep.h Thu Oct 22 12:46:02 2009
@@ -105,4 +105,13 @@
 #define mcount		_mcount
 #endif
 
+#if defined(__ARM_EABI__)
+/* Tag_ABI_align8_preserved: This code preserves 8-byte
+   alignment in any callee.  */
+	.eabi_attribute 25, 1
+/* Tag_ABI_align8_needed: This code may require 8-byte alignment from
+   the caller.  */
+	.eabi_attribute 24, 1
+#endif
+
 #endif	/* __ASSEMBLER__ */

Added: fsf/trunk/ports/sysdeps/unix/sysv/linux/arm/eabi/internal_accept4.S
==============================================================================
--- fsf/trunk/ports/sysdeps/unix/sysv/linux/arm/eabi/internal_accept4.S (added)
+++ fsf/trunk/ports/sysdeps/unix/sysv/linux/arm/eabi/internal_accept4.S Thu Oct 22 12:46:02 2009
@@ -1,0 +1,6 @@
+/* Tag_ABI_align8_preserved: This code preserves 8-byte
+   alignment in any callee.  */
+	.eabi_attribute 25, 1
+/* Tag_ABI_align8_needed: This code may require 8-byte alignment from
+   the caller.  */
+	.eabi_attribute 24, 1