diff options
author | Jeff Law <law@redhat.com> | 1996-05-15 14:28:34 +0000 |
---|---|---|
committer | Jeff Law <law@redhat.com> | 1996-05-15 14:28:34 +0000 |
commit | 6bafbdfbf6fc1e8f64b10d6b4d340401001d00c8 (patch) | |
tree | 6e0a31f1b930ba7959bb320f9a2dbb6f8142969e /gdb/h8300-tdep.c | |
parent | 9b33e492d6327edb62715d91c9ed22e6d5347ab8 (diff) | |
download | gdb-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.c | 12 |
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 (); } |