From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58165) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZEUrl-0007Ge-93 for qemu-devel@nongnu.org; Sun, 12 Jul 2015 23:57:18 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZEUre-0001KE-EQ for qemu-devel@nongnu.org; Sun, 12 Jul 2015 23:57:17 -0400 Received: from icp-osb-irony-out3.external.iinet.net.au ([203.59.1.153]:37286) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZEUre-0001Jr-2E for qemu-devel@nongnu.org; Sun, 12 Jul 2015 23:57:10 -0400 Message-ID: <55A33776.2060000@uclinux.org> Date: Mon, 13 Jul 2015 13:58:46 +1000 From: Greg Ungerer MIME-Version: 1.0 References: <5acb4fd7a4bc6a2d3f1abe4eb456403af1704765.1436665556.git.crosthwaite.peter@gmail.com> In-Reply-To: <5acb4fd7a4bc6a2d3f1abe4eb456403af1704765.1436665556.git.crosthwaite.peter@gmail.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 3/8] disas: m68k: QOMify target specific disas setup List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Peter Crosthwaite , qemu-devel@nongnu.org Cc: Peter Crosthwaite , afaerber@suse.de, Laurent Vivier On 12/07/15 12:00, Peter Crosthwaite wrote: > From: Peter Crosthwaite > > 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 I see no problems. Reviewed-by: Greg Ungerer > Cc: Laurent Vivier > Signed-off-by: Peter Crosthwaite > --- > 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) >