aboutsummaryrefslogtreecommitdiff
path: root/gdb/h8300-tdep.c
diff options
context:
space:
mode:
authorJeff Law <law@redhat.com>1996-05-15 14:28:34 +0000
committerJeff Law <law@redhat.com>1996-05-15 14:28:34 +0000
commit6bafbdfbf6fc1e8f64b10d6b4d340401001d00c8 (patch)
tree6e0a31f1b930ba7959bb320f9a2dbb6f8142969e /gdb/h8300-tdep.c
parent9b33e492d6327edb62715d91c9ed22e6d5347ab8 (diff)
downloadgdb-6bafbdfbf6fc1e8f64b10d6b4d340401001d00c8.zip
gdb-6bafbdfbf6fc1e8f64b10d6b4d340401001d00c8.tar.gz
gdb-6bafbdfbf6fc1e8f64b10d6b4d340401001d00c8.tar.bz2
* coffread.c (coff_symtab_read): Handle C_LABEL symbols like
C_STAT symbols. * h8300-tdep.c (h8300_pop_frame): Reset $sp and $pc correctly. Flush cached frames just before exiting. * remote-sim.c (gdbsim_resume): Complain if the program isn't being run. * config/h8300/tm-h8300.h (BELIEVE_PCC_PROMOTION): Define. Fix some bugs exposed by the testsuite. HMSE.
Diffstat (limited to 'gdb/h8300-tdep.c')
-rw-r--r--gdb/h8300-tdep.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/gdb/h8300-tdep.c b/gdb/h8300-tdep.c
index 32581e9..8c9bca0 100644
--- a/gdb/h8300-tdep.c
+++ b/gdb/h8300-tdep.c
@@ -377,11 +377,17 @@ h8300_pop_frame ()
for (regnum = 0; regnum < 8; regnum++)
{
- if (fsr.regs[regnum])
+ /* Don't forget SP_REGNUM is a frame_saved_regs struct is the
+ actual value we want, not the address of the value we want. */
+ if (fsr.regs[regnum] && regnum != SP_REGNUM)
write_register (regnum, read_memory_integer(fsr.regs[regnum], BINWORD));
-
- flush_cached_frames ();
+ else if (fsr.regs[regnum] && regnum == SP_REGNUM)
+ write_register (regnum, fsr.regs[regnum]);
}
+
+ /* Don't forget the update the PC too! */
+ write_pc (frame->from_pc);
+ flush_cached_frames ();
}