diff options
author | Peter Schauer <Peter.Schauer@mytum.de> | 1995-07-29 08:50:00 +0000 |
---|---|---|
committer | Peter Schauer <Peter.Schauer@mytum.de> | 1995-07-29 08:50:00 +0000 |
commit | e4dbd248df205219ec934f2b9d00f11f5a192913 (patch) | |
tree | 92dc322c1892f78587e1547f031359dc35bf5c28 /gdb/sparc-tdep.c | |
parent | ac72325fa892015a2ef5a104290f78f73e667c06 (diff) | |
download | fsf-binutils-gdb-e4dbd248df205219ec934f2b9d00f11f5a192913.zip fsf-binutils-gdb-e4dbd248df205219ec934f2b9d00f11f5a192913.tar.gz fsf-binutils-gdb-e4dbd248df205219ec934f2b9d00f11f5a192913.tar.bz2 |
* alpha-tdep.c: Move sigtramp handling of saved registers from
read_next_frame_reg to alpha_find_saved_regs, handle saved
floating point registers.
* mips-tdep.c: Move sigtramp handling of saved registers from
read_next_frame_reg to mips_find_saved_regs, handle saved
floating point registers.
* config/mips/tm-irix3.h, config/mips/tm-irix5.h,
config/mips/tm-mipsv4.h (SIGFRAME_FPREGSAVE_OFF): Define.
* sparc-tdep.c (sparc_pc_adjust): Fix check for `unimp'
instruction to handle functions returning structures with
large sizes properly.
Diffstat (limited to 'gdb/sparc-tdep.c')
-rw-r--r-- | gdb/sparc-tdep.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/gdb/sparc-tdep.c b/gdb/sparc-tdep.c index 172f98d..45031a2 100644 --- a/gdb/sparc-tdep.c +++ b/gdb/sparc-tdep.c @@ -1043,7 +1043,7 @@ sparc_pc_adjust(pc) err = target_read_memory (pc + 8, buf, sizeof(long)); insn = extract_unsigned_integer (buf, 4); - if ((err == 0) && (insn & 0xfffffe00) == 0) + if ((err == 0) && (insn & 0xffc00000) == 0) return pc+12; else return pc+8; @@ -1139,6 +1139,7 @@ prgregset_t *gregsetp; { register int regi; register prgreg_t *regp = (prgreg_t *) gregsetp; + static char zerobuf[MAX_REGISTER_RAW_SIZE] = {0}; /* GDB register numbers for Gn, On, Ln, In all match /proc reg numbers. */ for (regi = G0_REGNUM ; regi <= I7_REGNUM ; regi++) @@ -1151,6 +1152,11 @@ prgregset_t *gregsetp; supply_register (PC_REGNUM, (char *) (regp + R_PC)); supply_register (NPC_REGNUM,(char *) (regp + R_nPC)); supply_register (Y_REGNUM, (char *) (regp + R_Y)); + + /* Fill inaccessible registers with zero. */ + supply_register (WIM_REGNUM, zerobuf); + supply_register (TBR_REGNUM, zerobuf); + supply_register (CPS_REGNUM, zerobuf); } void |