[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/
- To: commits@xxxxxxxxxx
- Subject: [Commits] r25032 - in /fsf/trunk/libc/ports: ./ sysdeps/arm/ sysdeps/arm/include/bits/ sysdeps/unix/sysv/linux/arm/
- From: eglibc@xxxxxxxxxx
- Date: Wed, 15 Jan 2014 08:01:50 -0000
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