* m32r-tdep.c (decode_prologue): Sign extend offset for
authorKevin Buettner <kevinb@redhat.com>
Tue, 16 Oct 2007 06:39:30 +0000 (06:39 +0000)
committerKevin Buettner <kevinb@redhat.com>
Tue, 16 Oct 2007 06:39:30 +0000 (06:39 +0000)
"addi sp, xx" case.
(m32r_frame_unwind_cache): Likewise.

gdb/ChangeLog
gdb/m32r-tdep.c

index ac6f3e2c50d18e5e8d70973c7a9441dc1b78ba42..7d0fddf4692a3fa6459b7337ada97f78e052636d 100644 (file)
@@ -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
index b646372b0f22db8eb46968f5ae6547233c583a8a..c0973e80f03125cf60ecabe553ba19abfee2a858 100644 (file)
@@ -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)