[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/
- To: commits@xxxxxxxxxx
- Subject: [commits] r9120 - in /fsf/trunk/ports: ./ sysdeps/arm/ sysdeps/arm/eabi/ sysdeps/arm/elf/ sysdeps/unix/sysv/linux/arm/eabi/
- From: eglibc@xxxxxxxxxx
- Date: Thu, 22 Oct 2009 19:46:03 -0000
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