aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog6
-rw-r--r--gdb/mips-tdep.c5
2 files changed, 9 insertions, 2 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 49012e3..9ca1a56 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,9 @@
+2002-09-10 Michael Snyder <msnyder@redhat.com>
+
+ * mips-tdep.c (mips_extract_struct_value_address): Make val a
+ LONGEST, and use signed register read (addresses are sign-
+ extended for mips).
+
2002-09-10 Stephane Carrez <stcarrez@nerim.fr>
* event-loop.c (gdb_do_one_event): Make public.
diff --git a/gdb/mips-tdep.c b/gdb/mips-tdep.c
index eeffe24..1474393 100644
--- a/gdb/mips-tdep.c
+++ b/gdb/mips-tdep.c
@@ -4907,8 +4907,9 @@ mips_extract_struct_value_address (struct regcache *regcache)
/* FIXME: This will only work at random. The caller passes the
struct_return address in V0, but it is not preserved. It may
still be there, or this may be a random value. */
- CORE_ADDR val;
- regcache_cooked_read_unsigned (regcache, V0_REGNUM, &val);
+ LONGEST val;
+
+ regcache_cooked_read_signed (regcache, V0_REGNUM, &val);
return val;
}