From 9ffbf372a2db0770dc5e259ec616496a86c40bbb Mon Sep 17 00:00:00 2001 From: Kevin Buettner Date: Tue, 16 Oct 2007 06:39:30 +0000 Subject: [PATCH] * m32r-tdep.c (decode_prologue): Sign extend offset for "addi sp, xx" case. (m32r_frame_unwind_cache): Likewise. --- gdb/ChangeLog | 6 ++++++ gdb/m32r-tdep.c | 4 ++-- 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 + + * m32r-tdep.c (decode_prologue): Sign extend offset for + "addi sp, xx" case. + (m32r_frame_unwind_cache): Likewise. + 2007-10-15 Thiago Jung Bauermann * 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) -- 2.7.4