* mips-tdep.c (mips_find_saved_regs): Make static.

(mips_frame_init_saved_regs): New function.
	(mips_gdbarch_init): Setup FRAME_INIT_SAVED_REGS method.
	* config/mips/tm-mips.h (FRAME_INIT_SAVED_REGS): Delete macro.
	(mips_find_saved_regs): Delete declaration.
This commit is contained in:
Kevin Buettner 2002-08-08 23:32:52 +00:00
parent 7dc213a6bb
commit d28e01f471
2 changed files with 19 additions and 14 deletions

View File

@ -304,19 +304,6 @@ extern int mips_frame_num_args (struct frame_info *);
#define FRAME_ARGS_SKIP 0
/* Put here the code to store, into a struct frame_saved_regs,
the addresses of the saved registers of frame described by FRAME_INFO.
This includes special registers such as pc and fp saved in special
ways in the stack frame. sp is even more special:
the address we return for it IS the sp for the next frame. */
#define FRAME_INIT_SAVED_REGS(frame_info) \
do { \
if ((frame_info)->saved_regs == NULL) \
mips_find_saved_regs (frame_info); \
(frame_info)->saved_regs[SP_REGNUM] = (frame_info)->frame; \
} while (0)
extern void mips_find_saved_regs (struct frame_info *);
/* Things needed for making the inferior call functions. */

View File

@ -1259,7 +1259,7 @@ mips_next_pc (CORE_ADDR pc)
/* Guaranteed to set fci->saved_regs to some values (it never leaves it
NULL). */
void
static void
mips_find_saved_regs (struct frame_info *fci)
{
int ireg;
@ -1437,6 +1437,23 @@ mips_find_saved_regs (struct frame_info *fci)
fci->saved_regs[PC_REGNUM] = fci->saved_regs[RA_REGNUM];
}
/* Set up the 'saved_regs' array. This is a data structure containing
the addresses on the stack where each register has been saved, for
each stack frame. Registers that have not been saved will have
zero here. The stack pointer register is special: rather than the
address where the stack register has been saved, saved_regs[SP_REGNUM]
will have the actual value of the previous frame's stack register. */
static void
mips_frame_init_saved_regs (struct frame_info *frame)
{
if (frame->saved_regs == NULL)
{
mips_find_saved_regs (frame);
}
frame->saved_regs[SP_REGNUM] = frame->frame;
}
static CORE_ADDR
read_next_frame_reg (struct frame_info *fi, int regno)
{
@ -4715,6 +4732,7 @@ mips_gdbarch_init (struct gdbarch_info info,
/* Initialize a frame */
set_gdbarch_init_extra_frame_info (gdbarch, mips_init_extra_frame_info);
set_gdbarch_frame_init_saved_regs (gdbarch, mips_frame_init_saved_regs);
/* MIPS version of CALL_DUMMY */