From bbfaf54c24e1edbfe8dfa97569cafd90a8e3d77e Mon Sep 17 00:00:00 2001 From: Jie Zhang Date: Tue, 18 Oct 2005 16:39:41 +0000 Subject: [PATCH] * bfin-dis.c (print_insn_bfin): Do proper endian transform when reading instruction from memory. --- opcodes/ChangeLog | 5 +++++ opcodes/bfin-dis.c | 11 ++++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index 6bfdb7ceb7..7f878692ff 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,8 @@ +2005-10-18 Jie Zhang + + * bfin-dis.c (print_insn_bfin): Do proper endian transform when + reading instruction from memory. + 2005-10-18 Nick Clifton * m32r-asm.c: Regenerate after updating m32r.opc. diff --git a/opcodes/bfin-dis.c b/opcodes/bfin-dis.c index 2714e90947..08f9d23c5b 100644 --- a/opcodes/bfin-dis.c +++ b/opcodes/bfin-dis.c @@ -5765,13 +5765,18 @@ illegal_instruction: int print_insn_bfin (bfd_vma pc, disassemble_info *outf) { - short iw0 = 0; - int status = 0; + bfd_byte buf[2]; + unsigned short iw0; + int status; int count = 0; - status = (*outf->read_memory_func) (pc & ~0x01, (bfd_byte *) & iw0, 2, outf); + + status = (*outf->read_memory_func) (pc & ~0x01, buf, 2, outf); + iw0 = bfd_getl16 (buf); count += _print_insn_bfin (pc, outf); + /* Proper display of multiple issue instructions. */ + if ((iw0 & 0xc000) == 0xc000 && (iw0 & BIT_MULTI_INS) && ((iw0 & 0xe800) != 0xe800 /* not Linkage */ )) { -- 2.11.0