2003-01-19 Andrew Cagney <ac131313@redhat.com>
authorAndrew Cagney <cagney@redhat.com>
Sun, 19 Jan 2003 22:24:50 +0000 (22:24 +0000)
committerAndrew Cagney <cagney@redhat.com>
Sun, 19 Jan 2003 22:24:50 +0000 (22:24 +0000)
* d10v-tdep.c (d10v_frame_saved_pc, d10v_frame_chain): Restore
code handling dummy frames.

gdb/ChangeLog
gdb/d10v-tdep.c

index b383e54c2de0437421771428c58ce046a5ec90df..8ae914eb5e2925fc1578c9e2a567c574e15537c5 100644 (file)
@@ -1,3 +1,8 @@
+2003-01-19  Andrew Cagney  <ac131313@redhat.com>
+
+       * d10v-tdep.c (d10v_frame_saved_pc, d10v_frame_chain): Restore
+       code handling dummy frames.
+
 2003-01-19  Andrew Cagney  <ac131313@redhat.com>
 
        * frame-unwind.h (frame_unwind_pop_ftype): Declare.
index 63efe4c1540468ec2c70aeb6694ec7c9cc095930..b00cd9d0689e62e95c1355b4cde40e1eab03312e 100644 (file)
@@ -521,7 +521,12 @@ d10v_extract_struct_value_address (struct regcache *regcache)
 static CORE_ADDR
 d10v_frame_saved_pc (struct frame_info *frame)
 {
-  return (get_frame_extra_info (frame)->return_pc);
+  if (DEPRECATED_PC_IN_CALL_DUMMY (frame->pc, 0, 0))
+    return d10v_make_iaddr (deprecated_read_register_dummy (frame->pc, 
+                                                           frame->frame, 
+                                                           PC_REGNUM));
+  else
+    return ((frame)->extra_info->return_pc);
 }
 
 /* Immediately after a function call, return the saved pc.  We can't
@@ -692,8 +697,10 @@ d10v_frame_chain (struct frame_info *fi)
   CORE_ADDR addr;
 
   /* A generic call dummy's frame is the same as caller's.  */
-  d10v_frame_init_saved_regs (fi);
+  if (DEPRECATED_PC_IN_CALL_DUMMY (fi->pc, 0, 0))
+    return fi->frame;
 
+  d10v_frame_init_saved_regs (fi);
   
   if (get_frame_extra_info (fi)->return_pc == IMEM_START
       || inside_entry_file (get_frame_extra_info (fi)->return_pc))