aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog6
-rw-r--r--gdb/m32r-tdep.c4
2 files changed, 8 insertions, 2 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index ac6f3e2..7d0fddf 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,9 @@
+2007-10-16 Kevin Buettner <kevinb@redhat.com>
+
+ * m32r-tdep.c (decode_prologue): Sign extend offset for
+ "addi sp, xx" case.
+ (m32r_frame_unwind_cache): Likewise.
+
2007-10-15 Thiago Jung Bauermann <bauerman@br.ibm.com>
* rs6000-tdep.c (skip_prologue): Restore comment with
diff --git a/gdb/m32r-tdep.c b/gdb/m32r-tdep.c
index b646372..c0973e8 100644
--- a/gdb/m32r-tdep.c
+++ b/gdb/m32r-tdep.c
@@ -349,7 +349,7 @@ decode_prologue (CORE_ADDR start_pc, CORE_ADDR scan_limit,
if ((insn >> 8) == 0x4f) /* addi sp, xx */
/* add 8 bit sign-extended offset */
{
- int stack_adjust = (gdb_byte) (insn & 0xff);
+ int stack_adjust = (signed char) (insn & 0xff);
/* there are probably two of these stack adjustments:
1) A negative one in the prologue, and
@@ -578,7 +578,7 @@ m32r_frame_unwind_cache (struct frame_info *next_frame,
else if ((op & 0xff00) == 0x4f00)
{
/* addi sp, xx */
- int n = (gdb_byte) (op & 0xff);
+ int n = (signed char) (op & 0xff);
info->sp_offset += n;
}
else if (op == 0x1d8f)