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.17-159-gbc101e2
- From: krebbel at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 23 Jan 2013 09:01:01 -0000
- Subject: GNU C Library master sources branch master updated. glibc-2.17-159-gbc101e2
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 bc101e2652728d8a6e8ece7c637e095618546a95 (commit)
from 5655a0b58e1ba27b05c94c684c74b7078cb814d5 (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://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=bc101e2652728d8a6e8ece7c637e095618546a95
commit bc101e2652728d8a6e8ece7c637e095618546a95
Author: Andreas Krebbel <krebbel@linux.vnet.ibm.com>
Date: Wed Jan 23 10:00:24 2013 +0100
S/390: Fix setjmp/longjmp FPR save/restore
diff --git a/sysdeps/s390/bits/setjmp.h b/sysdeps/s390/bits/setjmp.h
index 285003f..e929c161 100644
--- a/sysdeps/s390/bits/setjmp.h
+++ b/sysdeps/s390/bits/setjmp.h
@@ -34,7 +34,7 @@ typedef struct __s390_jmp_buf
long int __gregs[10];
# if __WORDSIZE == 64
- /* We save fpu registers 1, 3, 5 and 7. */
+ /* We save fpu registers f8 - f15. */
long __fpregs[8];
# else
/* We save fpu registers 4 and 6. */
diff --git a/sysdeps/s390/s390-64/__longjmp.c b/sysdeps/s390/s390-64/__longjmp.c
index 510b1c2..2682406 100644
--- a/sysdeps/s390/s390-64/__longjmp.c
+++ b/sysdeps/s390/s390-64/__longjmp.c
@@ -42,10 +42,14 @@ __longjmp (__jmp_buf env, int val)
register void *r1 __asm ("%r1") = (void *) env;
#endif
/* Restore registers and jump back. */
- asm volatile ("ld %%f7,104(%1)\n\t"
- "ld %%f5,96(%1)\n\t"
- "ld %%f3,88(%1)\n\t"
- "ld %%f1,80(%1)\n\t"
+ asm volatile ("ld %%f8,80(%1)\n\t"
+ "ld %%f9,88(%1)\n\t"
+ "ld %%f10,96(%1)\n\t"
+ "ld %%f11,104(%1)\n\t"
+ "ld %%f12,112(%1)\n\t"
+ "ld %%f13,120(%1)\n\t"
+ "ld %%f14,128(%1)\n\t"
+ "ld %%f15,136(%1)\n\t"
#ifdef PTR_DEMANGLE
"lmg %%r6,%%r13,0(%1)\n\t"
"lmg %%r4,%%r5,64(%1)\n\t"
diff --git a/sysdeps/s390/s390-64/setjmp.S b/sysdeps/s390/s390-64/setjmp.S
index b12d905..6269dbf 100644
--- a/sysdeps/s390/s390-64/setjmp.S
+++ b/sysdeps/s390/s390-64/setjmp.S
@@ -55,10 +55,14 @@ ENTRY(__sigsetjmp)
#else
stmg %r6,%r15,0(%r2) /* Store registers in jmp_buf. */
#endif
- std %f1,80(%r2)
- std %f3,88(%r2)
- std %f5,96(%r2)
- std %f7,104(%r2)
+ std %f8,80(%r2)
+ std %f9,88(%r2)
+ std %f10,96(%r2)
+ std %f11,104(%r2)
+ std %f12,112(%r2)
+ std %f13,120(%r2)
+ std %f14,128(%r2)
+ std %f15,136(%r2)
#if defined NOT_IN_libc && defined IS_IN_rtld
/* In ld.so we never save the signal mask. */
lghi %r2,0
-----------------------------------------------------------------------
Summary of changes:
sysdeps/s390/bits/setjmp.h | 2 +-
sysdeps/s390/s390-64/__longjmp.c | 12 ++++++++----
sysdeps/s390/s390-64/setjmp.S | 12 ++++++++----
3 files changed, 17 insertions(+), 9 deletions(-)
hooks/post-receive
--
GNU C Library master sources