X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=opcodes%2Fsh-dis.c;h=126cb5ba992ef4c8a514c013f4f7ae8ad89b3e93;hb=28ce7b07473c33f2e4e380a861973d68ffe8017f;hp=fa55f8af0f3170250fc326b55b81d0f9f868340a;hpb=488916061e57e6b83b8229475789a78b8f7b5fb1;p=deliverable%2Fbinutils-gdb.git diff --git a/opcodes/sh-dis.c b/opcodes/sh-dis.c index fa55f8af0f..126cb5ba99 100644 --- a/opcodes/sh-dis.c +++ b/opcodes/sh-dis.c @@ -1,6 +1,5 @@ /* Disassemble SH instructions. - Copyright 1993, 1994, 1995, 1997, 1998, 2000, 2001, 2002, 2003, 2004, 2005, - 2006, 2007, 2012 Free Software Foundation, Inc. + Copyright (C) 1993-2019 Free Software Foundation, Inc. This file is part of the GNU opcodes library. @@ -26,11 +25,7 @@ #define DEFINE_TABLE #include "sh-opc.h" -#include "dis-asm.h" - -#ifdef ARCH_all -#define INCLUDE_SHMEDIA -#endif +#include "disassemble.h" static void print_movxy (const sh_opcode_info *op, @@ -153,7 +148,7 @@ print_insn_ddt (int insn, struct disassemble_info *info) while (op->nibbles[2] != (unsigned) ((insn >> 4) & 3) || op->nibbles[3] != (unsigned) (insn & 0xf)) op++; - + print_movxy (op, (4 * ((insn & (is_movy ? 0x200 : 0x100)) == 0) + 2 * is_movy @@ -405,16 +400,6 @@ print_insn_sh (bfd_vma memaddr, struct disassemble_info *info) && bfd_asymbol_flavour(*info->symbols) == bfd_target_coff_flavour) target_arch = arch_sh4; break; - case bfd_mach_sh5: -#ifdef INCLUDE_SHMEDIA - status = print_insn_sh64 (memaddr, info); - if (status != -2) - return status; -#endif - /* When we get here for sh64, it's because we want to disassemble - SHcompact, i.e. arch_sh4. */ - target_arch = arch_sh4; - break; default: target_arch = sh_get_arch_from_bfd_mach (info->mach); } @@ -837,6 +822,7 @@ print_insn_sh (bfd_vma memaddr, struct disassemble_info *info) fprintf_fn (stream, "xd%d", rn & ~1); break; } + /* Fall through. */ case D_REG_N: fprintf_fn (stream, "dr%d", rn); break; @@ -846,6 +832,7 @@ print_insn_sh (bfd_vma memaddr, struct disassemble_info *info) fprintf_fn (stream, "xd%d", rm & ~1); break; } + /* Fall through. */ case D_REG_M: fprintf_fn (stream, "dr%d", rm); break; @@ -906,6 +893,8 @@ print_insn_sh (bfd_vma memaddr, struct disassemble_info *info) size = 2; else size = 4; + /* Not reading an instruction - disable stop_vma. */ + info->stop_vma = 0; status = info->read_memory_func (disp_pc_addr, bytes, size, info); if (status == 0) {