summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Snyder <msnyder@specifix.com>2002-08-20 23:07:43 +0000
committerMichael Snyder <msnyder@specifix.com>2002-08-20 23:07:43 +0000
commit4505ba986efc486da99e02c3d02f41199b838aae (patch)
tree27a6e3f65dcca8d4ed63dedeb095baccbf8a4155
parenta77f0732f4be092c76f85fbfafb291256bfe127b (diff)
downloadgdb-4505ba986efc486da99e02c3d02f41199b838aae.tar.gz
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.
-rw-r--r--gdb/ChangeLog6
-rw-r--r--gdb/config/mips/tm-mips.h4
-rw-r--r--gdb/mips-tdep.c26
3 files changed, 15 insertions, 21 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index a01c38fc6c5..7424ccf4c22 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,11 @@
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.
* gdbarch.c, gdbarch.h: Regenerate.
* arch-utils.c, arch-utils.h (generic_in_solib_return_trampoline):
diff --git a/gdb/config/mips/tm-mips.h b/gdb/config/mips/tm-mips.h
index b3015e344e6..89784fe97c8 100644
--- a/gdb/config/mips/tm-mips.h
+++ b/gdb/config/mips/tm-mips.h
@@ -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
diff --git a/gdb/mips-tdep.c b/gdb/mips-tdep.c
index 79ce0424b4c..3a99744c2e0 100644
--- a/gdb/mips-tdep.c
+++ b/gdb/mips-tdep.c
@@ -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;
}