aboutsummaryrefslogtreecommitdiff
path: root/gdb/sparc-nat.c
diff options
context:
space:
mode:
authorPeter Schauer <Peter.Schauer@mytum.de>1993-05-25 06:52:54 +0000
committerPeter Schauer <Peter.Schauer@mytum.de>1993-05-25 06:52:54 +0000
commit1b71de8ea4e2230ca1bfe0451ce18800b7769173 (patch)
treef427edd3b716ab3adc49f4a32116fcf9c5e46b1e /gdb/sparc-nat.c
parent3b17ee1bad0e12a7418f7dfc2a6e1144bc013dc5 (diff)
downloadgdb-1b71de8ea4e2230ca1bfe0451ce18800b7769173.zip
gdb-1b71de8ea4e2230ca1bfe0451ce18800b7769173.tar.gz
gdb-1b71de8ea4e2230ca1bfe0451ce18800b7769173.tar.bz2
* sparc-nat.c (store_inferior_registers): Fill in all members of
inferior_fp_registers by reading them from the inferior before modifying and writing them back. Fixes unexplainable inferior FP exceptions after calls to the inferior or setting of floating point registers. * mips-tdep.c (mips_skip_prologue): Skip move of argument register to register which is generated by gcc-2.4.
Diffstat (limited to 'gdb/sparc-nat.c')
-rw-r--r--gdb/sparc-nat.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/gdb/sparc-nat.c b/gdb/sparc-nat.c
index f622b13..0147055 100644
--- a/gdb/sparc-nat.c
+++ b/gdb/sparc-nat.c
@@ -222,6 +222,12 @@ store_inferior_registers (regno)
if (wanna_store & FP_REGS)
{
if (!register_valid[FP0_REGNUM+9]) abort();
+ /* Initialize inferior_fp_registers members that gdb doesn't set
+ by reading them from the inferior. */
+ if (0 !=
+ ptrace (PTRACE_GETFPREGS, inferior_pid,
+ (PTRACE_ARG3_TYPE) &inferior_fp_registers, 0))
+ perror("ptrace_getfpregs");
memcpy (&inferior_fp_registers, &registers[REGISTER_BYTE (FP0_REGNUM)],
sizeof inferior_fp_registers.fpu_fr);