2003-04-14 Andrew Cagney <cagney@redhat.com>
authorAndrew Cagney <cagney@redhat.com>
Mon, 14 Apr 2003 19:16:13 +0000 (19:16 +0000)
committerAndrew Cagney <cagney@redhat.com>
Mon, 14 Apr 2003 19:16:13 +0000 (19:16 +0000)
* mips-tdep.c (mips_read_sp): Do not apply ADDR_BITS_REMOVE,
return the fully sign-extended register value.
(get_frame_pointer): Ditto.
(mips_pop_frame): Initialize "proc_desc" after checking for a
dummy frame.

gdb/ChangeLog
gdb/mips-tdep.c

index 12c213dd5db53ec675b7ea018d171ea44c088ba2..081d73ce26e8584bd6f9469c6df47d78f3b33e0d 100644 (file)
@@ -1,3 +1,11 @@
+2003-04-14  Andrew Cagney  <cagney@redhat.com>
+
+       * mips-tdep.c (mips_read_sp): Do not apply ADDR_BITS_REMOVE,
+       return the fully sign-extended register value.
+       (get_frame_pointer): Ditto.
+       (mips_pop_frame): Initialize "proc_desc" after checking for a
+       dummy frame.
+
 2003-04-14  Andrew Cagney  <cagney@redhat.com>
 
        * mips-tdep.c (mips_push_dummy_frame): Delete function.
index e65331208a70e12ee7dcd910af746952b1e12603..7956be492499af560a89d54b88df6c701166de50 100644 (file)
@@ -659,7 +659,7 @@ mips_register_virtual_type (int reg)
 static CORE_ADDR
 mips_read_sp (void)
 {
-  return ADDR_BITS_REMOVE (read_register (SP_REGNUM));
+  return read_signed_register (SP_REGNUM);
 }
 
 /* Should the upper word of 64-bit addresses be zeroed? */
@@ -2442,10 +2442,9 @@ static CORE_ADDR
 get_frame_pointer (struct frame_info *frame,
                   mips_extra_func_info_t proc_desc)
 {
-  return ADDR_BITS_REMOVE (read_next_frame_reg (frame, 
-                                               PROC_FRAME_REG (proc_desc)) +
-                          PROC_FRAME_OFFSET (proc_desc) - 
-                          PROC_FRAME_ADJUST (proc_desc));
+  return (read_next_frame_reg (frame, PROC_FRAME_REG (proc_desc))
+         + PROC_FRAME_OFFSET (proc_desc)
+         - PROC_FRAME_ADJUST (proc_desc));
 }
 
 static mips_extra_func_info_t cached_proc_desc;
@@ -3753,7 +3752,7 @@ mips_pop_frame (void)
   register int regnum;
   struct frame_info *frame = get_current_frame ();
   CORE_ADDR new_sp = get_frame_base (frame);
-  mips_extra_func_info_t proc_desc = get_frame_extra_info (frame)->proc_desc;
+  mips_extra_func_info_t proc_desc;
 
   if (DEPRECATED_PC_IN_CALL_DUMMY (get_frame_pc (frame), 0, 0))
     {
@@ -3762,6 +3761,7 @@ mips_pop_frame (void)
       return;
     }
 
+  proc_desc = get_frame_extra_info (frame)->proc_desc;
   write_register (PC_REGNUM, DEPRECATED_FRAME_SAVED_PC (frame));
   if (get_frame_saved_regs (frame) == NULL)
     DEPRECATED_FRAME_INIT_SAVED_REGS (frame);