Call print_insn_mep in mep_gdb_print_insn

opcodes/mep-dis.c:mep_print_insn has already had the code to
handle the case when info->section is NULL,

  /* Picking the right ISA bitmask for the current context is tricky.  */
  if (info->section)
    {
    }
  else /* sid or gdb */
    {
    }

so that we can still cal print_insn_mep even section can't be found.
On the other hand, user can disassemble an arbitrary address which
doesn't map to any section at all.

gdb:

2017-01-26  Yao Qi  <yao.qi@linaro.org>

	* mep-tdep.c (mep_gdb_print_insn): Set info->arch
	to bfd_arch_mep.  Don't return 0 if section is not
	found.  Call print_insn_mep.
This commit is contained in:
Yao Qi 2017-01-26 14:29:19 +00:00
parent e47ad6c0bd
commit 8cafda321c
2 changed files with 9 additions and 7 deletions

View File

@ -1,3 +1,9 @@
2017-01-26 Yao Qi <yao.qi@linaro.org>
* mep-tdep.c (mep_gdb_print_insn): Set info->arch
to bfd_arch_mep. Don't return 0 if section is not
found. Call print_insn_mep.
2017-01-26 Pedro Alves <palves@redhat.com>
Yao Qi <yao.qi@linaro.org>

View File

@ -1266,13 +1266,12 @@ mep_pseudo_register_write (struct gdbarch *gdbarch,
/* Disassembly. */
/* The mep disassembler needs to know about the section in order to
work correctly. */
static int
mep_gdb_print_insn (bfd_vma pc, disassemble_info * info)
{
struct obj_section * s = find_pc_section (pc);
info->arch = bfd_arch_mep;
if (s)
{
/* The libopcodes disassembly code uses the section to find the
@ -1280,12 +1279,9 @@ mep_gdb_print_insn (bfd_vma pc, disassemble_info * info)
the me_module index, and the me_module index to select the
right instructions to print. */
info->section = s->the_bfd_section;
info->arch = bfd_arch_mep;
return print_insn_mep (pc, info);
}
return 0;
return print_insn_mep (pc, info);
}