From 263fe2ea97bc0e0258f742bf5bad1461f09a61ae Mon Sep 17 00:00:00 2001 From: bje Date: Fri, 13 Feb 2004 02:55:11 +0000 Subject: [PATCH] 2004-02-10 Kazuhiro Inaoka * cpu/m32r.opc (my_print_insn): Fixed incorrect output when disassembling codes for 0x*2 addresses. --- cgen/ChangeLog | 5 +++++ cgen/cpu/m32r.opc | 7 ++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/cgen/ChangeLog b/cgen/ChangeLog index c4e8aad2ee..9f8cb7fbeb 100644 --- a/cgen/ChangeLog +++ b/cgen/ChangeLog @@ -1,3 +1,8 @@ +2004-02-10 Kazuhiro Inaoka + + * cpu/m32r.opc (my_print_insn): Fixed incorrect output when + disassembling codes for 0x*2 addresses. + 2004-01-29 Dave Brolley * decode.scm (-opcode-slots): For short insns, generate 'opcode' with diff --git a/cgen/cpu/m32r.opc b/cgen/cpu/m32r.opc index ac87da3a59..2a3ac44779 100644 --- a/cgen/cpu/m32r.opc +++ b/cgen/cpu/m32r.opc @@ -273,7 +273,8 @@ my_print_insn (cd, pc, info) /* Read the base part of the insn. */ - status = (*info->read_memory_func) (pc, buf, buflen, info); + status = (*info->read_memory_func) (pc - ((!big_p && (pc & 3) != 0) ? 2 : 0), + buf, buflen, info); if (status != 0) { (*info->memory_error_func) (status, pc, info); @@ -286,13 +287,13 @@ my_print_insn (cd, pc, info) return print_insn (cd, pc, info, buf, buflen); /* Print the first insn. */ - buf += (big_p ? 0 : 2); if ((pc & 3) == 0) { + buf += (big_p ? 0 : 2); if (print_insn (cd, pc, info, buf, 2) == 0) (*info->fprintf_func) (info->stream, UNKNOWN_INSN_MSG); + buf += (big_p ? 2 : -2); } - buf += (big_p ? 2 : -2); x = (big_p ? &buf[0] : &buf[1]); if (*x & 0x80) -- 2.11.0