On 12/07/15 12:00, Peter Crosthwaite wrote: > From: Peter Crosthwaite <crosthwaitepe...@gmail.com> > > Move the target_disas() m68k specifics to the QOM disas_set_info hook > and delete the #ifdef specific code in disas.c. > > Cc: Greg Ungerer <g...@uclinux.org>
I see no problems. Reviewed-by: Greg Ungerer <g...@uclinux.org> > Cc: Laurent Vivier <laur...@vivier.eu> > Signed-off-by: Peter Crosthwaite <crosthwaite.pe...@gmail.com> > --- > Testing: > I cant find binaries for this arch easily, but I got this from executing > random code: > > $ ./m68k-softmmu/qemu-system-m68k -kernel ./random_code -S -nographic -d > in_asm 2> err > QEMU 2.3.90 monitor - type 'help' for more information > (qemu) xp 0x40000000 > 0000000040000000: 0x7d413a22 > (qemu) xp/i 0x40000000 > 0x40000000: mvsw %d1,%d6 > (qemu) xp/i 0x40000004 > 0x40000004: addqb #2,%a0@(27614) > (qemu) c > (qemu) Aborted (core dumped) > > $ more err > qemu: fatal: Illegal instruction: 7d41 @ 40000000 > --- > disas.c | 4 ---- > target-m68k/cpu.c | 7 +++++++ > 2 files changed, 7 insertions(+), 4 deletions(-) > > diff --git a/disas.c b/disas.c > index 6c86129..91cbb1a 100644 > --- a/disas.c > +++ b/disas.c > @@ -243,8 +243,6 @@ void target_disas(FILE *out, CPUState *cpu, target_ulong > code, > } > s.info.disassembler_options = (char *)"any"; > s.info.print_insn = print_insn_ppc; > -#elif defined(TARGET_M68K) > - s.info.print_insn = print_insn_m68k; > #elif defined(TARGET_MIPS) > #ifdef TARGET_WORDS_BIGENDIAN > s.info.print_insn = print_insn_big_mips; > @@ -463,8 +461,6 @@ void monitor_disas(Monitor *mon, CPUState *cpu, > s.info.endian = BFD_ENDIAN_LITTLE; > } > s.info.print_insn = print_insn_ppc; > -#elif defined(TARGET_M68K) > - s.info.print_insn = print_insn_m68k; > #elif defined(TARGET_MIPS) > #ifdef TARGET_WORDS_BIGENDIAN > s.info.print_insn = print_insn_big_mips; > diff --git a/target-m68k/cpu.c b/target-m68k/cpu.c > index 4f246da..2555755 100644 > --- a/target-m68k/cpu.c > +++ b/target-m68k/cpu.c > @@ -61,6 +61,11 @@ static void m68k_cpu_reset(CPUState *s) > tlb_flush(s, 1); > } > > +static void m68k_cpu_disas_set_info(CPUState *cpu, disassemble_info *info) > +{ > + info->print_insn = print_insn_m68k; > +} > + > /* CPU models */ > > static ObjectClass *m68k_cpu_class_by_name(const char *cpu_model) > @@ -212,6 +217,8 @@ static void m68k_cpu_class_init(ObjectClass *c, void > *data) > dc->vmsd = &vmstate_m68k_cpu; > cc->gdb_num_core_regs = 18; > cc->gdb_core_xml_file = "cf-core.xml"; > + > + cc->disas_set_info = m68k_cpu_disas_set_info; > } > > static void register_cpu_type(const M68kCPUInfo *info) >