This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GNU C Library master sources branch roland/arm-setjmp created. 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, roland/arm-setjmp has been created
        at  d7706c32589ef32f4bed3122a2f5c861b214149e (commit)

- 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, \

-----------------------------------------------------------------------


hooks/post-receive
-- 
GNU C Library master sources


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]