diff options
author | Ulrich Drepper <drepper@redhat.com> | 2008-03-24 20:01:15 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2008-03-24 20:01:15 +0000 |
commit | 87b9b50f0d4b92248905e95a06a13c513dc45e59 (patch) | |
tree | 505dd39121573f328dde7c58e7f07fd460f93330 | |
parent | af0498dc955f23c4e2eb28b1658ec2e86b4ab069 (diff) | |
download | glibc-87b9b50f0d4b92248905e95a06a13c513dc45e59.tar.gz glibc-87b9b50f0d4b92248905e95a06a13c513dc45e59.tar.xz glibc-87b9b50f0d4b92248905e95a06a13c513dc45e59.zip |
* sysdeps/s390/fpu/fegetenv.c (fegetenv): Remove PTRACE_PEEKUSER
ptrace call to get the ieee_instruction_pointer from the kernel. * sysdeps/s390/fpu/fesetenv.c (fesetenv): Remove PTRACE_POKEUSER ptrace call to set the ieee_instructtion_pointer. * sysdeps/unix/sysv/linux/s390/sys/user.h (struct _user_regs_struct): Add comment that ieee_instruction_pointer is always 0.
-rw-r--r-- | ChangeLog | 9 | ||||
-rw-r--r-- | sysdeps/s390/fpu/fegetenv.c | 10 | ||||
-rw-r--r-- | sysdeps/s390/fpu/fesetenv.c | 8 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/s390/sys/user.h | 4 |
4 files changed, 13 insertions, 18 deletions
diff --git a/ChangeLog b/ChangeLog index 80ee942ef7..185955fe19 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2008-03-07 Martin Schwidefsky <schwidefsky@de.ibm.com> + + * sysdeps/s390/fpu/fegetenv.c (fegetenv): Remove PTRACE_PEEKUSER + ptrace call to get the ieee_instruction_pointer from the kernel. + * sysdeps/s390/fpu/fesetenv.c (fesetenv): Remove PTRACE_POKEUSER + ptrace call to set the ieee_instructtion_pointer. + * sysdeps/unix/sysv/linux/s390/sys/user.h (struct _user_regs_struct): + Add comment that ieee_instruction_pointer is always 0. + 2008-03-09 Andreas Jaeger <aj@suse.de> [BZ #5857] diff --git a/sysdeps/s390/fpu/fegetenv.c b/sysdeps/s390/fpu/fegetenv.c index b35a76a4e8..a244f2ca8b 100644 --- a/sysdeps/s390/fpu/fegetenv.c +++ b/sysdeps/s390/fpu/fegetenv.c @@ -1,5 +1,5 @@ /* Store current floating-point environment. - Copyright (C) 2000, 2003 Free Software Foundation, Inc. + Copyright (C) 2000, 2008 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Denis Joseph Barrow (djbarrow@de.ibm.com). @@ -28,15 +28,7 @@ int fegetenv (fenv_t *envp) { - /* The S/390 IEEE fpu doesn't keep track of the ieee instruction pointer. - To get around that the kernel will store the address of the last - fpu fault to the process structure. This ptrace call reads this value - from the kernel space. That means the ieee_instruction_pointer is - only correct after a fpu fault. That's the best we can do, there is - no way to find out the ieee instruction pointer if there was no fault. */ _FPU_GETCW (envp->fpc); - envp->ieee_instruction_pointer = - (void *) ptrace (PTRACE_PEEKUSER, getpid (), PT_IEEE_IP); /* Success. */ return 0; diff --git a/sysdeps/s390/fpu/fesetenv.c b/sysdeps/s390/fpu/fesetenv.c index bb71c95a1e..82555c4948 100644 --- a/sysdeps/s390/fpu/fesetenv.c +++ b/sysdeps/s390/fpu/fesetenv.c @@ -1,5 +1,5 @@ /* Install given floating-point environment. - Copyright (C) 2000, 2002 Free Software Foundation, Inc. + Copyright (C) 2000, 2008 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Denis Joseph Barrow (djbarrow@de.ibm.com). @@ -43,13 +43,7 @@ fesetenv (const fenv_t *envp) else env = (*envp); - /* The S/390 IEEE fpu doesn't have a register for the ieee - instruction pointer. The operating system is required to keep an - instruction pointer on a per process base. We read and write this - value with the ptrace interface. */ _FPU_SETCW (env.fpc); - ptrace (PTRACE_POKEUSER, getpid (), PT_IEEE_IP, - env.ieee_instruction_pointer); /* Success. */ return 0; diff --git a/sysdeps/unix/sysv/linux/s390/sys/user.h b/sysdeps/unix/sysv/linux/s390/sys/user.h index f00caea84d..cd3e60cf0d 100644 --- a/sysdeps/unix/sysv/linux/s390/sys/user.h +++ b/sysdeps/unix/sysv/linux/s390/sys/user.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2000,2005 Free Software Foundation, Inc. +/* Copyright (C) 2000,2008 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -56,7 +56,7 @@ struct _user_regs_struct unsigned long orig_gpr2; /* Original gpr2. */ struct _user_fpregs_struct fp_regs; /* Floating point registers. */ struct _user_per_struct per_info; /* Hardware tracing registers. */ - unsigned long ieee_instruction_pointer; + unsigned long ieee_instruction_pointer; /* Always 0. */ }; struct user { |