From ab20fa4ae95212c58e369916de347f3d518530c2 Mon Sep 17 00:00:00 2001 From: Yao Qi Date: Wed, 24 May 2017 17:23:52 +0100 Subject: [PATCH] Use disassemble.c:disassembler select rl78 disassembler This patch changes rl78 to let disassble.c:disassembler select disassembler. rl78_get_disassembler doesn't handle the case that abfd is NULL, so this patch also fix it. gdb: 2017-05-24 Yao Qi * rl78-tdep.c (rl78_gdbarch_init): Don't call set_gdbarch_print_insn. opcodes: 2017-05-24 Yao Qi * rl78-dis.c (rl78_get_disassembler): If parameter abfd is NULL, set cpu to E_FLAG_RL78_ANY_CPU. --- gdb/ChangeLog | 5 +++++ gdb/rl78-tdep.c | 3 --- opcodes/ChangeLog | 5 +++++ opcodes/rl78-dis.c | 6 +++++- 4 files changed, 15 insertions(+), 4 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index f3b88e18e0..4e329af3f4 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2017-05-24 Yao Qi + + * rl78-tdep.c (rl78_gdbarch_init): Don't call + set_gdbarch_print_insn. + 2017-05-24 Yao Qi * h8300-tdep.c (h8300_gdbarch_init): Don't call diff --git a/gdb/rl78-tdep.c b/gdb/rl78-tdep.c index 307a7607e6..5775f96d31 100644 --- a/gdb/rl78-tdep.c +++ b/gdb/rl78-tdep.c @@ -1470,9 +1470,6 @@ rl78_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) set_gdbarch_sw_breakpoint_from_kind (gdbarch, rl78_breakpoint::bp_from_kind); set_gdbarch_decr_pc_after_break (gdbarch, 1); - /* Disassembly. */ - set_gdbarch_print_insn (gdbarch, print_insn_rl78); - /* Frames, prologues, etc. */ set_gdbarch_inner_than (gdbarch, core_addr_lessthan); set_gdbarch_skip_prologue (gdbarch, rl78_skip_prologue); diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index b461d78259..912567b6c9 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,8 @@ +2017-05-24 Yao Qi + + * rl78-dis.c (rl78_get_disassembler): If parameter abfd + is NULL, set cpu to E_FLAG_RL78_ANY_CPU. + 2017-05-24 Yao Qi * disassemble.c (disassembler): Add arguments a, big and mach. diff --git a/opcodes/rl78-dis.c b/opcodes/rl78-dis.c index 1839436f6b..799cd3823e 100644 --- a/opcodes/rl78-dis.c +++ b/opcodes/rl78-dis.c @@ -406,7 +406,11 @@ print_insn_rl78_g14 (bfd_vma addr, disassemble_info * dis) disassembler_ftype rl78_get_disassembler (bfd *abfd) { - int cpu = abfd->tdata.elf_obj_data->elf_header->e_flags & E_FLAG_RL78_CPU_MASK; + int cpu = E_FLAG_RL78_ANY_CPU; + + if (abfd != NULL) + cpu = abfd->tdata.elf_obj_data->elf_header->e_flags & E_FLAG_RL78_CPU_MASK; + switch (cpu) { case E_FLAG_RL78_G10: