diff options
author | Stu Grossman <grossman@cygnus> | 1993-05-05 22:35:32 +0000 |
---|---|---|
committer | Stu Grossman <grossman@cygnus> | 1993-05-05 22:35:32 +0000 |
commit | b227992a7642750bb84d3908db66b89422e14518 (patch) | |
tree | f44d4de588c0a9acece521149273ec157899f448 | |
parent | 68c8d698d4e7df0ca1197ef8546a37d2738957ee (diff) | |
download | gdb-b227992a7642750bb84d3908db66b89422e14518.zip gdb-b227992a7642750bb84d3908db66b89422e14518.tar.gz gdb-b227992a7642750bb84d3908db66b89422e14518.tar.bz2 |
* Patches from Jeffrey Law <law@cs.utah.edu>.
* gdb/hppa-tdep.c (find_dummy_frame_regs): Rework so that
it does not assume %r4 is the frame pointer.
-rw-r--r-- | gdb/ChangeLog | 2 | ||||
-rw-r--r-- | gdb/hppa-tdep.c | 26 |
2 files changed, 15 insertions, 13 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index ae489ef..94677c1 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,6 +1,8 @@ Wed May 5 15:16:33 1993 Stu Grossman (grossman@cygnus.com) * Patches from Jeffrey Law <law@cs.utah.edu>. + * gdb/hppa-tdep.c (find_dummy_frame_regs): Rework so that + it does not assume %r4 is the frame pointer. * gdb/hppa-pinsn.c (print_insn): Handle 'r' and 'R' for break, rsm, and ssm instructions. * gdb/hppa-tdep.c (extract_5r_store, extract_5R_store): New diff --git a/gdb/hppa-tdep.c b/gdb/hppa-tdep.c index 49af79e..ca23938 100644 --- a/gdb/hppa-tdep.c +++ b/gdb/hppa-tdep.c @@ -503,26 +503,26 @@ find_dummy_frame_regs (frame, frame_saved_regs) frame_saved_regs->regs[RP_REGNUM] = fp - 20 & ~0x3; frame_saved_regs->regs[FP_REGNUM] = fp; frame_saved_regs->regs[1] = fp + 8; - frame_saved_regs->regs[3] = fp + 12; - for (fp += 16, i = 5; i < 32; fp += 4, i++) - frame_saved_regs->regs[i] = fp; + for (fp += 12, i = 3; i < 32; i++) + { + if (i != FP_REGNUM) + { + frame_saved_regs->regs[i] = fp; + fp += 4; + } + } fp += 4; for (i = FP0_REGNUM; i < NUM_REGS; i++, fp += 8) frame_saved_regs->regs[i] = fp; frame_saved_regs->regs[IPSW_REGNUM] = fp; - fp += 4; - frame_saved_regs->regs[SAR_REGNUM] = fp; - fp += 4; - frame_saved_regs->regs[PCOQ_HEAD_REGNUM] = fp; - fp +=4; - frame_saved_regs->regs[PCSQ_HEAD_REGNUM] = fp; - fp +=4; - frame_saved_regs->regs[PCOQ_TAIL_REGNUM] = fp; - fp +=4; - frame_saved_regs->regs[PCSQ_TAIL_REGNUM] = fp; + frame_saved_regs->regs[SAR_REGNUM] = fp + 4; + frame_saved_regs->regs[PCOQ_HEAD_REGNUM] = fp + 8; + frame_saved_regs->regs[PCSQ_HEAD_REGNUM] = fp + 12; + frame_saved_regs->regs[PCOQ_TAIL_REGNUM] = fp + 16; + frame_saved_regs->regs[PCSQ_TAIL_REGNUM] = fp + 20; } int |