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

[Commits] r25032 - in /fsf/trunk/libc/ports: ./ sysdeps/arm/ sysdeps/arm/include/bits/ sysdeps/unix/sysv/linux/arm/



Author: eglibc
Date: Wed Jan 15 00:01:48 2014
New Revision: 25032

Log:
Import glibc-mainline for 2014-01-15

Modified:
    fsf/trunk/libc/ports/ChangeLog.arm
    fsf/trunk/libc/ports/sysdeps/arm/__longjmp.S
    fsf/trunk/libc/ports/sysdeps/arm/include/bits/setjmp.h
    fsf/trunk/libc/ports/sysdeps/arm/setjmp.S
    fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/arm/sysdep.h

Modified: fsf/trunk/libc/ports/ChangeLog.arm
==============================================================================
--- fsf/trunk/libc/ports/ChangeLog.arm (original)
+++ fsf/trunk/libc/ports/ChangeLog.arm Wed Jan 15 00:01:48 2014
@@ -1,3 +1,13 @@
+2014-01-14  Will Newton  <will.newton@xxxxxxxxxx>
+
+	* sysdeps/arm/__longjmp.S: Don't apply pointer encryption
+	to fp register.
+	* sysdeps/arm/setjmp.S: Likewise.
+	* sysdeps/arm/include/bits/setjmp.h (JMP_BUF_REGLIST): Add
+	fp to register list, remove a4.
+	* sysdeps/unix/sysv/linux/arm/sysdep.h (PTR_MANGLE_LOAD):
+	New macro.
+
 2014-01-10  Roland McGrath  <roland@xxxxxxxxxxxxx>
 
 	* sysdeps/arm/arm-mcount.S:

Modified: fsf/trunk/libc/ports/sysdeps/arm/__longjmp.S
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/arm/__longjmp.S (original)
+++ fsf/trunk/libc/ports/sysdeps/arm/__longjmp.S Wed Jan 15 00:01:48 2014
@@ -41,14 +41,12 @@
 	sfi_sp sfi_breg ip, \
 	ldmia	\B!, JMP_BUF_REGLIST
 #ifdef PTR_DEMANGLE
-	PTR_DEMANGLE (fp, a4, a3, a2)
 	ldr	a4, [ip], #4
-	PTR_DEMANGLE2 (a4, a4, a3)
+	PTR_DEMANGLE (a4, a4, a3, a2)
 	mov	sp, a4
 	ldr	a4, [ip], #4
 	PTR_DEMANGLE2 (lr, a4, a3)
 #else
-	mov	fp, a4
 	ldr	sp, [ip], #4
 	ldr	lr, [ip], #4
 #endif

Modified: fsf/trunk/libc/ports/sysdeps/arm/include/bits/setjmp.h
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/arm/include/bits/setjmp.h (original)
+++ fsf/trunk/libc/ports/sysdeps/arm/include/bits/setjmp.h Wed Jan 15 00:01:48 2014
@@ -26,9 +26,8 @@
 
 #ifndef _ISOMAC
 /* Register list for a ldm/stm instruction to load/store
-   the general registers from a __jmp_buf. The a4 register
-   contains fp at this point.  */
-# define JMP_BUF_REGLIST	{a4, v1-v6, sl}
+   the general registers from a __jmp_buf.  */
+# define JMP_BUF_REGLIST	{v1-v6, sl, fp}
 
 /* Index of __jmp_buf where the sp register resides.  */
 # define __JMP_BUF_SP		8

Modified: fsf/trunk/libc/ports/sysdeps/arm/setjmp.S
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/arm/setjmp.S (original)
+++ fsf/trunk/libc/ports/sysdeps/arm/setjmp.S Wed Jan 15 00:01:48 2014
@@ -23,9 +23,7 @@
 
 ENTRY (__sigsetjmp)
 #ifdef PTR_MANGLE
-	PTR_MANGLE (a4, fp, a3, ip)
-#else
-	mov	a4, fp
+	PTR_MANGLE_LOAD (a3, ip)
 #endif
 	mov	ip, r0
 

Modified: fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/arm/sysdep.h
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/arm/sysdep.h (original)
+++ fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/arm/sysdep.h Wed Jan 15 00:01:48 2014
@@ -439,8 +439,10 @@
 #if (defined NOT_IN_libc && defined IS_IN_rtld) || \
   (!defined SHARED && (!defined NOT_IN_libc || defined IS_IN_libpthread))
 # ifdef __ASSEMBLER__
+#  define PTR_MANGLE_LOAD(guard, tmp)					\
+  LDST_PCREL(ldr, guard, tmp, C_SYMBOL_NAME(__pointer_chk_guard_local));
 #  define PTR_MANGLE(dst, src, guard, tmp)				\
-  LDST_PCREL(ldr, guard, tmp, C_SYMBOL_NAME(__pointer_chk_guard_local)); \
+  PTR_MANGLE_LOAD(guard, tmp);						\
   PTR_MANGLE2(dst, src, guard)
 /* Use PTR_MANGLE2 for efficiency if guard is already loaded.  */
 #  define PTR_MANGLE2(dst, src, guard)		\
@@ -457,8 +459,10 @@
 # endif
 #else
 # ifdef __ASSEMBLER__
+#  define PTR_MANGLE_LOAD(guard, tmp)					\
+  LDST_GLOBAL(ldr, guard, tmp, C_SYMBOL_NAME(__pointer_chk_guard));
 #  define PTR_MANGLE(dst, src, guard, tmp)				\
-  LDST_GLOBAL(ldr, guard, tmp, C_SYMBOL_NAME(__pointer_chk_guard));	\
+  PTR_MANGLE_LOAD(guard, tmp);						\
   PTR_MANGLE2(dst, src, guard)
 /* Use PTR_MANGLE2 for efficiency if guard is already loaded.  */
 #  define PTR_MANGLE2(dst, src, guard)		\

_______________________________________________
Commits mailing list
Commits@xxxxxxxxxx
http://eglibc.org/cgi-bin/mailman/listinfo/commits