diff options
author | Mark Kettenis <kettenis@gnu.org> | 2004-05-30 14:11:00 +0000 |
---|---|---|
committer | Mark Kettenis <kettenis@gnu.org> | 2004-05-30 14:11:00 +0000 |
commit | 8693c4197209e0a4d6333aa5e92db134c3c1cd6a (patch) | |
tree | 2dacfd0ae2c89d4580a815c96f8b328e631915bc /gdb/hppa-tdep.c | |
parent | 0c8434a4e0626b78875409e4b167b95003ab1512 (diff) | |
download | fsf-binutils-gdb-8693c4197209e0a4d6333aa5e92db134c3c1cd6a.zip fsf-binutils-gdb-8693c4197209e0a4d6333aa5e92db134c3c1cd6a.tar.gz fsf-binutils-gdb-8693c4197209e0a4d6333aa5e92db134c3c1cd6a.tar.bz2 |
* hppa-tdep.c (hppa_frame_prev_register_helper): Reimplement to
handle VALUEP being null.
Diffstat (limited to 'gdb/hppa-tdep.c')
-rw-r--r-- | gdb/hppa-tdep.c | 31 |
1 files changed, 21 insertions, 10 deletions
diff --git a/gdb/hppa-tdep.c b/gdb/hppa-tdep.c index e2653d7..d219429 100644 --- a/gdb/hppa-tdep.c +++ b/gdb/hppa-tdep.c @@ -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); } + /* 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); } - |