diff options
author | Anton Blanchard <anton@samba.org> | 2013-06-26 15:53:33 +0200 |
---|---|---|
committer | Denys Vlasenko <dvlasenk@redhat.com> | 2013-06-26 15:56:53 +0200 |
commit | ce6e33be1dbfc16620ea7991a414e879ef84fe22 (patch) | |
tree | 0a00b610e98bc7caf07a61c4986ea36e4385f841 /signal.c | |
parent | 711b17c44b50b6de7cfb9a3f2bd9d70dfdcacc8c (diff) | |
download | strace-ce6e33be1dbfc16620ea7991a414e879ef84fe22.tar.gz strace-ce6e33be1dbfc16620ea7991a414e879ef84fe22.tar.bz2 strace-ce6e33be1dbfc16620ea7991a414e879ef84fe22.tar.xz |
powerpc: Use PTRACE_GETREGS to fetch all registers
* defs.h: declare ppc_regs and get_regs_error.
* signal.c (sys_sigreturn): Use ppc_regs instead of upeek.
* syscall.c: define ppc_regs.
(printcall): Use ppc_regs instead of upeek.
(get_scno): Replace multiple upeek calls with one PTRACE_GETREGS call.
(get_syscall_result): Likewise.
Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
Diffstat (limited to 'signal.c')
-rw-r--r-- | signal.c | 5 |
1 files changed, 3 insertions, 2 deletions
@@ -866,8 +866,9 @@ sys_sigreturn(struct tcb *tcp) long esp; struct sigcontext_struct sc; sigset_t sigm; - if (upeek(tcp, sizeof(unsigned long) * PT_R1, &esp) < 0) - return 0; + + esp = ppc_regs.gpr[1]; + /* Skip dummy stack frame. */ #ifdef POWERPC64 if (current_personality == 0) |