2002-08-20 Michael Snyder <msnyder@redhat.com>
authorMichael Snyder <msnyder@vmware.com>
Tue, 20 Aug 2002 23:07:43 +0000 (23:07 +0000)
committerMichael Snyder <msnyder@vmware.com>
Tue, 20 Aug 2002 23:07:43 +0000 (23:07 +0000)
        * 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.

gdb/ChangeLog
gdb/config/mips/tm-mips.h
gdb/mips-tdep.c

index a01c38fc6c523add6bac36bb7fc3511fedc48b8e..7424ccf4c2253ac8866edabba46c61ffe91424b3 100644 (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.
index b3015e344e61230e6c7f271fbfb2b370ee18fef5..89784fe97c8d484f5a7faeb83523e2e6c88806a1 100644 (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
index 79ce0424b4c635354d44703888689292546fc8a7..3a99744c2e09eae5b2963fd6f7ab35c536dd669e 100644 (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;
 }