Use disassemble.c:disassembler select rl78 disassembler
authorYao Qi <yao.qi@linaro.org>
Wed, 24 May 2017 16:23:52 +0000 (17:23 +0100)
committerYao Qi <yao.qi@linaro.org>
Wed, 24 May 2017 16:23:52 +0000 (17:23 +0100)
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  <yao.qi@linaro.org>

* rl78-tdep.c (rl78_gdbarch_init): Don't call
set_gdbarch_print_insn.

opcodes:

2017-05-24  Yao Qi  <yao.qi@linaro.org>

* rl78-dis.c (rl78_get_disassembler): If parameter abfd
is NULL, set cpu to E_FLAG_RL78_ANY_CPU.

gdb/ChangeLog
gdb/rl78-tdep.c
opcodes/ChangeLog
opcodes/rl78-dis.c

index f3b88e18e02992fee104824148305bb659c7eabc..4e329af3f41852d0923edc0af508aac462950e0e 100644 (file)
@@ -1,3 +1,8 @@
+2017-05-24  Yao Qi  <yao.qi@linaro.org>
+
+       * rl78-tdep.c (rl78_gdbarch_init): Don't call
+       set_gdbarch_print_insn.
+
 2017-05-24  Yao Qi  <yao.qi@linaro.org>
 
        * h8300-tdep.c (h8300_gdbarch_init): Don't call
index 307a7607e6b437b0debc7bc2e075fc062c2b1f7f..5775f96d3101ffbafaccba8c9d2c43bfdad5e1c9 100644 (file)
@@ -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);
index b461d78259110e40071cf073473d2f47edf87977..912567b6c91aafbf79d4ff3893385b5cbb03c4aa 100644 (file)
@@ -1,3 +1,8 @@
+2017-05-24  Yao Qi  <yao.qi@linaro.org>
+
+       * rl78-dis.c (rl78_get_disassembler): If parameter abfd
+       is NULL, set cpu to E_FLAG_RL78_ANY_CPU.
+
 2017-05-24  Yao Qi  <yao.qi@linaro.org>
 
        * disassemble.c (disassembler): Add arguments a, big and mach.
index 1839436f6b7e36bb41a4c4ebcf33fda0004f32b9..799cd3823e4042b29f732897633b294e9a162bc5 100644 (file)
@@ -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: