Re: [PATCH 3/6] Call print_insn_mep in mep_gdb_print_insn

Luis Machado
2017-01-17T14:19:35Z

On 01/16/2017 04:02 AM, Yao Qi wrote:
> 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-10 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.
> ---
> gdb/mep-tdep.c | 10 +++-------
> 1 file changed, 3 insertions(+), 7 deletions(-)
>
> diff --git a/gdb/mep-tdep.c b/gdb/mep-tdep.c
> index 68b0c4b..b1dcc86 100644
> --- a/gdb/mep-tdep.c
> +++ b/gdb/mep-tdep.c
> @@ -1266,13 +1266,12 @@ mep_pseudo_register_write (struct gdbarch *gdbarch,
> \f
> /* Disassembly. */
>
> -/* The mep disassembler needs to know about the section in order to
> - work correctly. */

Instead of removing the comment, should we point out what the effects of
having/not having section info will be?

> 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);
> }
>
> \f
>

Otherwise looks OK.