* 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.
This commit is contained in:
Daniel Jacobowitz 2007-01-09 20:19:15 +00:00
parent 6aba47ca06
commit 5efde11249
6 changed files with 43 additions and 14 deletions

View File

@ -1,3 +1,13 @@
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>

View File

@ -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 = {

View File

@ -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 = {

View File

@ -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,

View File

@ -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 = {

View File

@ -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);
}
}