This is the mail archive of the
glibc-cvs@sourceware.org
mailing list for the glibc project.
GNU C Library master sources branch master updated. glibc-2.19-140-gd7706c3
- From: roland at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 11 Mar 2014 19:16:02 -0000
- Subject: GNU C Library master sources branch master updated. glibc-2.19-140-gd7706c3
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".
The branch, master has been updated
via d7706c32589ef32f4bed3122a2f5c861b214149e (commit)
from 4facea473059914983b7da8dd654c06b8e3dcc41 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=d7706c32589ef32f4bed3122a2f5c861b214149e
commit d7706c32589ef32f4bed3122a2f5c861b214149e
Author: Roland McGrath <roland@hack.frob.com>
Date: Tue Mar 11 10:59:01 2014 -0700
ARM: Fix up setjmp/longjmp changes sfi_* macro use.
diff --git a/ChangeLog b/ChangeLog
index 3312dcb..3a589d8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2014-03-11 Roland McGrath <roland@hack.frob.com>
+
+ * sysdeps/arm/setjmp.S: Use sfi_breg on stores of mangled registers.
+ * sysdeps/arm/__longjmp.S: Use sfi_breg on loads of mangled registers.
+ Move sfi_sp use from the load-multiple (that no longer sets sp) to
+ the new mov targetting sp.
+
2014-03-11 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
[BZ #16683]
diff --git a/sysdeps/arm/__longjmp.S b/sysdeps/arm/__longjmp.S
index 08521e5..27d1b71 100644
--- a/sysdeps/arm/__longjmp.S
+++ b/sysdeps/arm/__longjmp.S
@@ -38,22 +38,27 @@ ENTRY (__longjmp)
#endif
#ifdef PTR_DEMANGLE
- ldr a4, [ip], #4
+ sfi_breg ip, \
+ ldr a4, [\B], #4
PTR_DEMANGLE (a4, a4, a3, r4)
cfi_undefined (r4)
- ldr r4, [ip], #4
+ sfi_breg ip, \
+ ldr r4, [\B], #4
PTR_DEMANGLE2 (r4, r4, a3)
#else
- ldr a4, [ip], #4
- ldr r4, [ip], #4
+ sfi_breg ip, \
+ ldr a4, [\B], #4
+ sfi_breg ip, \
+ ldr r4, [\B], #4
cfi_undefined (r4)
#endif
/* longjmp probe expects longjmp first argument (4@r0), second
argument (-4@r1), and target address (4@r4), respectively. */
LIBC_PROBE (longjmp, 3, 4@r0, -4@r1, 4@r4)
+ sfi_sp \
mov sp, a4
mov lr, r4
- sfi_sp sfi_breg ip, \
+ sfi_breg ip, \
ldmia \B!, JMP_BUF_REGLIST
cfi_restore (v1)
cfi_restore (v2)
diff --git a/sysdeps/arm/setjmp.S b/sysdeps/arm/setjmp.S
index 5e55ca5..17a16c9 100644
--- a/sysdeps/arm/setjmp.S
+++ b/sysdeps/arm/setjmp.S
@@ -36,12 +36,16 @@ ENTRY (__sigsetjmp)
#ifdef PTR_MANGLE
mov a4, sp
PTR_MANGLE2 (a4, a4, a3)
- str a4, [ip], #4
+ sfi_breg ip, \
+ str a4, [\B], #4
PTR_MANGLE2 (a4, lr, a3)
- str a4, [ip], #4
+ sfi_breg ip, \
+ str a4, [\B], #4
#else
- str sp, [ip], #4
- str lr, [ip], #4
+ sfi_breg ip, \
+ str sp, [\B], #4
+ sfi_breg ip, \
+ str lr, [\B], #4
#endif
/* Save registers */
sfi_breg ip, \
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 7 +++++++
sysdeps/arm/__longjmp.S | 15 ++++++++++-----
sysdeps/arm/setjmp.S | 12 ++++++++----
3 files changed, 25 insertions(+), 9 deletions(-)
hooks/post-receive
--
GNU C Library master sources