* config/pa/tm-hppa.h: Declare target_read_pc and target_write_pc.
authorJim Kingdon <jkingdon@engr.sgi.com>
Tue, 7 Sep 1993 19:57:45 +0000 (19:57 +0000)
committerJim Kingdon <jkingdon@engr.sgi.com>
Tue, 7 Sep 1993 19:57:45 +0000 (19:57 +0000)
(STORE_RETURN_VAULE): Pass the correct offset of the return
register to write_register_bytes.
* hppa-tdep.c: Use target_write_pc if PCOQ_TAIL_REGNUM was not saved.

gdb/ChangeLog
gdb/hppa-tdep.c

index 4847af46124052e1c873057ed533bdcc65fcb50a..075ee0f31a77515582c2c09a8a72670cb9a68d65 100644 (file)
@@ -1,3 +1,10 @@
+Tue Sep  7 13:06:44 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)
+
+       * config/pa/tm-hppa.h: Declare target_read_pc and target_write_pc.
+       (STORE_RETURN_VAULE): Pass the correct offset of the return
+       register to write_register_bytes.
+       * hppa-tdep.c: Use target_write_pc if PCOQ_TAIL_REGNUM was not saved.
+
 Tue Sep  7 14:30:34 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
 
        * config/m68k/tm-m68k.h (FIX_CALL_DUMMY): Changed name of swapping
index c3842cf5d148dbc211d5bd5191becf5d41f6d248..9d71ec87f67c5361f9904999d5b1db60de64b796 100644 (file)
@@ -689,10 +689,15 @@ hppa_pop_frame ()
     write_register (SAR_REGNUM,
                     read_memory_integer (fsr.regs[SAR_REGNUM], 4));
 
+  /* If the PC was explicitly saved, then just restore it.  */
   if (fsr.regs[PCOQ_TAIL_REGNUM])
     write_register (PCOQ_TAIL_REGNUM,
                     read_memory_integer (fsr.regs[PCOQ_TAIL_REGNUM], 4));
 
+  /* Else use the value in %rp to set the new PC.  */
+  else 
+    target_write_pc (read_register (RP_REGNUM));
+
   write_register (FP_REGNUM, read_memory_integer (fp, 4));
 
   if (fsr.regs[IPSW_REGNUM])    /* call dummy */