* hppa-tdep.c (hppa_frame_prev_register_helper): Reimplement to
authorMark Kettenis <kettenis@gnu.org>
Sun, 30 May 2004 14:11:00 +0000 (14:11 +0000)
committerMark Kettenis <kettenis@gnu.org>
Sun, 30 May 2004 14:11:00 +0000 (14:11 +0000)
handle VALUEP being null.

gdb/ChangeLog
gdb/hppa-tdep.c

index 7cf96c525311842fddf35c3120e30dda52eb702c..f6c21d87ded75a2cb7fd5ef4e4af429cea920e95 100644 (file)
@@ -1,5 +1,8 @@
 2004-05-30  Mark Kettenis  <kettenis@gnu.org>
 
+       * hppa-tdep.c (hppa_frame_prev_register_helper): Reimplement to
+       handle VALUEP being null.
+
        * regset.h (collect_regset_ftype): Unconstify fourth argument.
 
 2004-05-29  Mark Kettenis  <kettenis@gnu.org>
index e2653d73fc602f088f0de617c1206c543b773359..d219429b2b77f4078f206be005d84739eaf6fe51 100644 (file)
@@ -2316,20 +2316,32 @@ hppa_frame_prev_register_helper (struct frame_info *next_frame,
                                 enum lval_type *lvalp, CORE_ADDR *addrp,
                                 int *realnump, void *valuep)
 {
-  int pcoqt = (regnum == HPPA_PCOQ_TAIL_REGNUM);
-  struct gdbarch *gdbarch = get_frame_arch (next_frame);
-  int regsize = register_size (gdbarch, HPPA_PCOQ_HEAD_REGNUM);
+  if (regnum == HPPA_PCOQ_TAIL_REGNUM)
+    {
+      if (valuep)
+       {
+         CORE_ADDR pc;
 
-  if (pcoqt)
-    regnum = HPPA_PCOQ_HEAD_REGNUM;
+         trad_frame_prev_register (next_frame, saved_regs,
+                                   HPPA_PCOQ_HEAD_REGNUM, optimizedp,
+                                   lvalp, addrp, realnump, valuep);
+
+         pc = extract_unsigned_integer (valuep, 4);
+         store_unsigned_integer (valuep, 4, pc + 4);
+       }
+
+      /* It's a computed value.  */
+      *optimizedp = 0;
+      *lvalp = not_lval;
+      *addrp = 0;
+      *realnump = -1;
+      return;
+    }
 
   trad_frame_prev_register (next_frame, saved_regs, regnum,
                             optimizedp, lvalp, addrp, realnump, valuep);
-
-  if (pcoqt)
-    store_unsigned_integer (valuep, regsize, 
-                           extract_unsigned_integer (valuep, regsize) + 4);
 }
+\f
 
 /* Here is a table of C type sizes on hppa with various compiles
    and options.  I measured this on PA 9000/800 with HP-UX 11.11
@@ -2559,4 +2571,3 @@ be no argument or the argument must be a depth.\n"), NULL);
                                  &hppa_debug, "Set hppa debugging.\n\
 When non-zero, hppa specific debugging is enabled.", &setdebuglist), &showdebuglist);
 }
-
This page took 0.030445 seconds and 4 git commands to generate.