2002-08-20 Michael Snyder <msnyder@redhat.com>

* mips-tdep.c (mips_in_return_stub): Make static.
	(mips_gdbarch_init): Set in_solib_return_trampoline.
	* config/mips/tm-mips.h (IN_SOLIB_RETURN_TRAMPOLINE): Delete.
This commit is contained in:
Michael Snyder 2002-08-20 23:07:43 +00:00
parent d50355b63c
commit e41b17f0dc
3 changed files with 15 additions and 21 deletions

View File

@ -1,3 +1,9 @@
2002-08-20 Michael Snyder <msnyder@redhat.com>
* mips-tdep.c (mips_in_return_stub): Make static.
(mips_gdbarch_init): Set in_solib_return_trampoline.
* config/mips/tm-mips.h (IN_SOLIB_RETURN_TRAMPOLINE): Delete.
2002-08-20 Michael Snyder <msnyder@redhat.com>
* gdbarch.sh (IN_SOLIB_RETURN_TRAMPOLINE): Add.

View File

@ -218,11 +218,7 @@ extern void fixup_sigtramp (void);
extern char *mips_read_processor_type (void);
/* Functions for dealing with MIPS16 call and return stubs. */
#define IN_SOLIB_RETURN_TRAMPOLINE(pc, name) mips_in_return_stub (pc, name)
#define IGNORE_HELPER_CALL(pc) mips_ignore_helper (pc)
extern int mips_in_call_stub (CORE_ADDR pc, char *name);
extern int mips_in_return_stub (CORE_ADDR pc, char *name);
extern CORE_ADDR mips_skip_stub (CORE_ADDR pc);
extern int mips_ignore_helper (CORE_ADDR pc);
#ifndef TARGET_MIPS

View File

@ -3773,21 +3773,13 @@ mips_pop_frame (void)
if (frame->saved_regs == NULL)
FRAME_INIT_SAVED_REGS (frame);
for (regnum = 0; regnum < NUM_REGS; regnum++)
if (regnum != SP_REGNUM && regnum != PC_REGNUM
&& frame->saved_regs[regnum])
{
/* Floating point registers must not be sign extended,
in case MIPS_SAVED_REGSIZE = 4 but sizeof (FP0_REGNUM) == 8. */
if (FP0_REGNUM <= regnum && regnum < FP0_REGNUM + 32)
write_register (regnum,
read_memory_unsigned_integer (frame->saved_regs[regnum],
MIPS_SAVED_REGSIZE));
else
write_register (regnum,
read_memory_integer (frame->saved_regs[regnum],
MIPS_SAVED_REGSIZE));
}
{
if (regnum != SP_REGNUM && regnum != PC_REGNUM
&& frame->saved_regs[regnum])
write_register (regnum,
read_memory_integer (frame->saved_regs[regnum],
MIPS_SAVED_REGSIZE));
}
write_register (SP_REGNUM, new_sp);
flush_cached_frames ();
@ -5338,7 +5330,7 @@ mips_in_call_stub (CORE_ADDR pc, char *name)
/* Return non-zero if the PC is inside a return thunk (aka stub or trampoline).
This implements the IN_SOLIB_RETURN_TRAMPOLINE macro. */
int
static int
mips_in_return_stub (CORE_ADDR pc, char *name)
{
CORE_ADDR start_addr;
@ -6011,7 +6003,7 @@ mips_gdbarch_init (struct gdbarch_info info,
set_gdbarch_skip_trampoline_code (gdbarch, mips_skip_stub);
set_gdbarch_in_solib_call_trampoline (gdbarch, mips_in_call_stub);
/* set_gdbarch_in_solib_return_trampoline (gdbarch, mips_in_return_stub); */
set_gdbarch_in_solib_return_trampoline (gdbarch, mips_in_return_stub);
return gdbarch;
}