diff options
-rw-r--r-- | gdb/ChangeLog | 10 | ||||
-rw-r--r-- | gdb/alpha-mdebug-tdep.c | 8 | ||||
-rw-r--r-- | gdb/alpha-tdep.c | 16 | ||||
-rw-r--r-- | gdb/frame.c | 5 | ||||
-rw-r--r-- | gdb/h8300-tdep.c | 8 | ||||
-rw-r--r-- | gdb/m32c-tdep.c | 10 |
6 files changed, 43 insertions, 14 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 296fc4c8bc2..f6260c4ad01 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,4 +1,14 @@ 2007-01-09 Daniel Jacobowitz <dan@codesourcery.com> + + * alpha-mdebug-tdep.c (alpha_mdebug_frame_prev_register): Use + frame_unwind_register to recurse. + * alpha-tdep.c (alpha_sigtramp_frame_prev_register): Likewise. + (alpha_heuristic_frame_prev_register): Likewise. + * h8300-tdep.c (h8300_frame_prev_register): Likewise. + * m32c-tdep.c (m32c_prev_register): Likewise. + * frame.c (frame_register_unwind_location): Remove FIXME. + +2007-01-09 Daniel Jacobowitz <dan@codesourcery.com> Eli Zaretskii <eliz@gnu.org> * copyright.sh: New file. diff --git a/gdb/alpha-mdebug-tdep.c b/gdb/alpha-mdebug-tdep.c index 906c1c76120..c2f180251bf 100644 --- a/gdb/alpha-mdebug-tdep.c +++ b/gdb/alpha-mdebug-tdep.c @@ -294,8 +294,12 @@ alpha_mdebug_frame_prev_register (struct frame_info *next_frame, } /* Otherwise assume the next frame has the same register value. */ - frame_register (next_frame, regnum, optimizedp, lvalp, addrp, - realnump, bufferp); + *optimizedp = 0; + *lvalp = lval_register; + *addrp = 0; + *realnump = regnum; + if (bufferp) + frame_unwind_register (next_frame, *realnump, bufferp); } static const struct frame_unwind alpha_mdebug_frame_unwind = { diff --git a/gdb/alpha-tdep.c b/gdb/alpha-tdep.c index 0bf0f78a0e7..5b8f4216ae1 100644 --- a/gdb/alpha-tdep.c +++ b/gdb/alpha-tdep.c @@ -864,8 +864,12 @@ alpha_sigtramp_frame_prev_register (struct frame_info *next_frame, current description of it in alpha_sigtramp_frame_unwind_cache doesn't include it. Too bad. Fall back on whatever's in the outer frame. */ - frame_register (next_frame, regnum, optimizedp, lvalp, addrp, - realnump, bufferp); + *optimizedp = 0; + *lvalp = lval_register; + *addrp = 0; + *realnump = regnum; + if (bufferp) + frame_unwind_register (next_frame, *realnump, bufferp); } static const struct frame_unwind alpha_sigtramp_frame_unwind = { @@ -1218,8 +1222,12 @@ alpha_heuristic_frame_prev_register (struct frame_info *next_frame, } /* Otherwise assume the next frame has the same register value. */ - frame_register_unwind (next_frame, regnum, optimizedp, lvalp, addrp, - realnump, bufferp); + *optimizedp = 0; + *lvalp = lval_register; + *addrp = 0; + *realnump = regnum; + if (bufferp) + frame_unwind_register (next_frame, *realnump, bufferp); } static const struct frame_unwind alpha_heuristic_frame_unwind = { diff --git a/gdb/frame.c b/gdb/frame.c index 32a97d7c6f5..8d393050c68 100644 --- a/gdb/frame.c +++ b/gdb/frame.c @@ -1103,10 +1103,7 @@ reinit_frame_cache (void) /* Find where a register is saved (in memory or another register). The result of frame_register_unwind is just where it is saved - relative to this particular frame. - - FIXME: alpha, m32c, and h8300 actually do the transitive operation - themselves. */ + relative to this particular frame. */ static void frame_register_unwind_location (struct frame_info *this_frame, int regnum, diff --git a/gdb/h8300-tdep.c b/gdb/h8300-tdep.c index 4b0652120e0..f5a8e4df16c 100644 --- a/gdb/h8300-tdep.c +++ b/gdb/h8300-tdep.c @@ -529,8 +529,12 @@ h8300_frame_prev_register (struct frame_info *next_frame, void **this_cache, return; } - frame_register_unwind (next_frame, regnum, - optimizedp, lvalp, addrp, realnump, valuep); + *optimizedp = 0; + *lvalp = lval_register; + *addrp = 0; + *realnump = regnum; + if (valuep) + frame_unwind_register (next_frame, *realnump, valuep); } static const struct frame_unwind h8300_frame_unwind = { diff --git a/gdb/m32c-tdep.c b/gdb/m32c-tdep.c index 12e0ec2ff59..3aeeedf560c 100644 --- a/gdb/m32c-tdep.c +++ b/gdb/m32c-tdep.c @@ -1919,8 +1919,14 @@ m32c_prev_register (struct frame_info *next_frame, /* Otherwise, presume we haven't changed the value of this register, and get it from the next frame. */ else - frame_register_unwind (next_frame, regnum, - optimizedp, lvalp, addrp, realnump, bufferp); + { + *optimizedp = 0; + *lvalp = lval_register; + *addrp = 0; + *realnump = regnum; + if (bufferp) + frame_unwind_register (next_frame, *realnump, bufferp); + } } |