aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Kettenis <kettenis@gnu.org>2004-12-21 22:50:54 +0000
committerMark Kettenis <kettenis@gnu.org>2004-12-21 22:50:54 +0000
commit8f4e467cb19f22d498a09282a2ffd237b109525f (patch)
tree23fb49c2c56b1d7d9ed3f14acca4078f081975ea
parent9738b0348b0a9ff5ee2ad28773800a6012429376 (diff)
downloadgdb-8f4e467cb19f22d498a09282a2ffd237b109525f.zip
gdb-8f4e467cb19f22d498a09282a2ffd237b109525f.tar.gz
gdb-8f4e467cb19f22d498a09282a2ffd237b109525f.tar.bz2
* hppa-tdep.c (hppa_frame_prev_register_helper): Make 64-bit safe.
-rw-r--r--gdb/ChangeLog4
-rw-r--r--gdb/hppa-tdep.c12
2 files changed, 10 insertions, 6 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 639d287..2796723 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,9 @@
2004-12-21 Mark Kettenis <kettenis@gnu.org>
+ * hppa-tdep.c (hppa_frame_prev_register_helper): Make 64-bit safe.
+
+2004-12-21 Mark Kettenis <kettenis@gnu.org>
+
* hppa-tdep.c (hppa64_return_value): Fix previous commit.
2004-12-21 Mark Kettenis <kettenis@gnu.org>
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;