diff options
author | Mark Kettenis <kettenis@gnu.org> | 2004-12-21 22:50:54 +0000 |
---|---|---|
committer | Mark Kettenis <kettenis@gnu.org> | 2004-12-21 22:50:54 +0000 |
commit | 8f4e467cb19f22d498a09282a2ffd237b109525f (patch) | |
tree | 23fb49c2c56b1d7d9ed3f14acca4078f081975ea /gdb/hppa-tdep.c | |
parent | 9738b0348b0a9ff5ee2ad28773800a6012429376 (diff) | |
download | fsf-binutils-gdb-8f4e467cb19f22d498a09282a2ffd237b109525f.zip fsf-binutils-gdb-8f4e467cb19f22d498a09282a2ffd237b109525f.tar.gz fsf-binutils-gdb-8f4e467cb19f22d498a09282a2ffd237b109525f.tar.bz2 |
* hppa-tdep.c (hppa_frame_prev_register_helper): Make 64-bit safe.
Diffstat (limited to 'gdb/hppa-tdep.c')
-rw-r--r-- | gdb/hppa-tdep.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/gdb/hppa-tdep.c b/gdb/hppa-tdep.c index 97dcc0d..d4317d1 100644 --- a/gdb/hppa-tdep.c +++ b/gdb/hppa-tdep.c @@ -2622,18 +2622,21 @@ hppa_frame_prev_register_helper (struct frame_info *next_frame, enum lval_type *lvalp, CORE_ADDR *addrp, int *realnump, void *valuep) { + struct gdbarch *arch = get_frame_arch (next_frame); + if (regnum == HPPA_PCOQ_TAIL_REGNUM) { if (valuep) { + int size = register_size (arch, HPPA_PCOQ_HEAD_REGNUM); CORE_ADDR pc; trad_frame_get_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); + pc = extract_unsigned_integer (valuep, size); + store_unsigned_integer (valuep, size, pc + 4); } /* It's a computed value. */ @@ -2652,10 +2655,7 @@ hppa_frame_prev_register_helper (struct frame_info *next_frame, if (regnum == HPPA_FLAGS_REGNUM) { if (valuep) - store_unsigned_integer (valuep, - register_size (get_frame_arch (next_frame), - regnum), - 0); + store_unsigned_integer (valuep, register_size (arch, regnum), 0); /* It's a computed value. */ *optimizedp = 0; |