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 master updated. glibc-2.17-667-g0175558


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  0175558aa0a16a647ee368898a83a7d42e2011e8 (commit)
      from  2bcb36b265ea2677198c22d005873b9b9600137e (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=0175558aa0a16a647ee368898a83a7d42e2011e8

commit 0175558aa0a16a647ee368898a83a7d42e2011e8
Author: Joseph Myers <joseph@codesourcery.com>
Date:   Tue May 14 19:50:14 2013 +0000

    Stop ARM setjmp/longjmp saving/restoring fpscr (bug 14908).

diff --git a/NEWS b/NEWS
index 027ceab..72c6a1c 100644
--- a/NEWS
+++ b/NEWS
@@ -11,13 +11,13 @@ Version 2.18
 
   2546, 2560, 5159, 6809, 10060, 10062, 10357, 11120, 11561, 12387, 12723,
   13550, 13889, 13951, 13988, 14142, 14176, 14200, 14280, 14293, 14317,
-  14327, 14478, 14496, 14582, 14686, 14812, 14888, 14920, 14952, 14964,
-  14981, 14982, 14985, 14994, 14996, 15003, 15006, 15007, 15020, 15023,
-  15036, 15054, 15055, 15062, 15078, 15084, 15085, 15086, 15160, 15214,
-  15221, 15232, 15234, 15283, 15285, 15287, 15304, 15305, 15307, 15309,
-  15327, 15330, 15335, 15336, 15337, 15342, 15346, 15359, 15361, 15366,
-  15380, 15394, 15395, 15405, 15406, 15409, 15416, 15418, 15419, 15423,
-  15426, 15429, 15448.
+  14327, 14478, 14496, 14582, 14686, 14812, 14888, 14908, 14920, 14952,
+  14964, 14981, 14982, 14985, 14994, 14996, 15003, 15006, 15007, 15020,
+  15023, 15036, 15054, 15055, 15062, 15078, 15084, 15085, 15086, 15160,
+  15214, 15221, 15232, 15234, 15283, 15285, 15287, 15304, 15305, 15307,
+  15309, 15327, 15330, 15335, 15336, 15337, 15342, 15346, 15359, 15361,
+  15366, 15380, 15394, 15395, 15405, 15406, 15409, 15416, 15418, 15419,
+  15423, 15426, 15429, 15448.
 
 * CVE-2013-0242 Buffer overrun in regexp matcher has been fixed (Bugzilla
   #15078).
diff --git a/ports/ChangeLog.arm b/ports/ChangeLog.arm
index 2565518..ce5fc36 100644
--- a/ports/ChangeLog.arm
+++ b/ports/ChangeLog.arm
@@ -1,3 +1,11 @@
+2013-05-14  Joseph Myers  <joseph@codesourcery.com>
+
+	[BZ #14908]
+	* sysdeps/arm/setjmp.S (__sigsetjmp): Don't save fpscr.
+	* sysdeps/arm/__longjmp.S (__longjmp): Don't restore fpscr.
+	* sysdeps/arm/bits/setjmp.h (__jmp_buf): Don't mention fpscr in
+	comment.
+
 2013-05-13  Roland McGrath  <roland@hack.frob.com>
 
 	* sysdeps/arm/armv7/multiarch/memcpy.S [__ARM_NEON__]: Don't define
diff --git a/ports/sysdeps/arm/__longjmp.S b/ports/sysdeps/arm/__longjmp.S
index 8de9fa1..a5edede 100644
--- a/ports/sysdeps/arm/__longjmp.S
+++ b/ports/sysdeps/arm/__longjmp.S
@@ -83,11 +83,6 @@ ENTRY (__longjmp)
 	/* Following instruction is vldmia ip!, {d8-d15}.  */
 	sfi_breg r12, \
 	ldc	p11, cr8, [\B], #64
-	/* Restore the floating-point status register.  */
-	sfi_breg ip, \
-	ldr     a3, [\B], #4
-	/* Following instruction is fmxr fpscr, a3.  */
-	mcr	p10, 7, a3, cr1, cr0, 0
 .Lno_vfp:
 
 #ifndef ARM_ASSUME_NO_IWMMXT
diff --git a/ports/sysdeps/arm/bits/setjmp.h b/ports/sysdeps/arm/bits/setjmp.h
index 21bbf7f..c8c3a9a 100644
--- a/ports/sysdeps/arm/bits/setjmp.h
+++ b/ports/sysdeps/arm/bits/setjmp.h
@@ -28,9 +28,9 @@
 /* The exact set of registers saved may depend on the particular core
    in use, as some coprocessor registers may need to be saved.  The C
    Library ABI requires that the buffer be 8-byte aligned, and
-   recommends that the buffer contain 64 words.  The first 28 words
-   are occupied by v1-v6, sl, fp, sp, pc, d8-d15, and fpscr.  (Note
-   that d8-15 require 17 words, due to the use of fstmx.)  */
+   recommends that the buffer contain 64 words.  The first 27 words
+   are occupied by v1-v6, sl, fp, sp, pc, and d8-d15.  (Note that
+   d8-15 require 17 words, due to the use of fstmx.)  */
 typedef int __jmp_buf[64] __attribute__((__aligned__ (8)));
 #endif
 
diff --git a/ports/sysdeps/arm/setjmp.S b/ports/sysdeps/arm/setjmp.S
index f750470..a6c161d 100644
--- a/ports/sysdeps/arm/setjmp.S
+++ b/ports/sysdeps/arm/setjmp.S
@@ -67,11 +67,6 @@ ENTRY (__sigsetjmp)
 	/* Following instruction is vstmia ip!, {d8-d15}.  */
 	sfi_breg ip, \
 	stc	p11, cr8, [\B], #64
-	/* Store the floating-point status register.  */
-	/* Following instruction is vmrs a4, fpscr.  */
-	mrc	p10, 7, a4, cr1, cr0, 0
-	sfi_breg ip, \
-	str	a4, [\B], #4
 .Lno_vfp:
 
 #ifndef ARM_ASSUME_NO_IWMMXT

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

Summary of changes:
 NEWS                            |   14 +++++++-------
 ports/ChangeLog.arm             |    8 ++++++++
 ports/sysdeps/arm/__longjmp.S   |    5 -----
 ports/sysdeps/arm/bits/setjmp.h |    6 +++---
 ports/sysdeps/arm/setjmp.S      |    5 -----
 5 files changed, 18 insertions(+), 20 deletions(-)


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]