qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 6/8] disas: sh4: QOMify target specific disas se


From: Aurelien Jarno
Subject: Re: [Qemu-devel] [PATCH 6/8] disas: sh4: QOMify target specific disas setup
Date: Tue, 14 Jul 2015 17:47:19 +0200
User-agent: Mutt/1.5.23 (2014-03-12)

On 2015-07-11 19:00, Peter Crosthwaite wrote:
> From: Peter Crosthwaite <address@hidden>
> 
> Move the target_disas() sh4 specifics to the QOM disas_set_info hook
> and delete the #ifdef specific code in disas.c.
> 
> Cc: Aurelien Jarno <address@hidden>
> Signed-off-by: Peter Crosthwaite <address@hidden>
> ---
> Testing:
> $ ../../qemu/sh4-softmmu/qemu-system-sh4 -M r2d -kernel zImage \
>     -hda sh-linux-mini.img -nographic -d in_asm -S 2> err
> QEMU 2.3.90 monitor - type 'help' for more information
> (qemu) info registers
> pc=0xac800000 sr=0x700000f0 pr=0x00000000 fpscr=0x00040001
> ...
> (qemu) x/i 0xac800000
> 0xac800000:  mov.l  0xac80007c,r1   ! 0x400000f0
> (qemu) x/i 0xac800004
> 0xac800004:  mova   0xac80004c,r0
> (qemu) c
> (qemu) q
> 
> $ more err
> IN:
> 0xac800000:  mov.l  0xac80007c,r1   ! 0x400000f0
> 0xac800002:  ldc    r1,sr
> 
> IN:
> 0xac800004:  mova   0xac80004c,r0
> ---
>  disas.c          | 6 ------
>  target-sh4/cpu.c | 8 ++++++++
>  2 files changed, 8 insertions(+), 6 deletions(-)
> 
> diff --git a/disas.c b/disas.c
> index f269cc9..eee369e 100644
> --- a/disas.c
> +++ b/disas.c
> @@ -244,9 +244,6 @@ void target_disas(FILE *out, CPUState *cpu, target_ulong 
> code,
>  #else
>      s.info.print_insn = print_insn_little_mips;
>  #endif
> -#elif defined(TARGET_SH4)
> -    s.info.mach = bfd_mach_sh4;
> -    s.info.print_insn = print_insn_sh;
>  #elif defined(TARGET_ALPHA)
>      s.info.mach = bfd_mach_alpha_ev6;
>      s.info.print_insn = print_insn_alpha;
> @@ -454,9 +451,6 @@ void monitor_disas(Monitor *mon, CPUState *cpu,
>  #else
>      s.info.print_insn = print_insn_little_mips;
>  #endif
> -#elif defined(TARGET_SH4)
> -    s.info.mach = bfd_mach_sh4;
> -    s.info.print_insn = print_insn_sh;
>  #endif
>      if (!s.info.print_insn) {
>          monitor_printf(mon, "0x" TARGET_FMT_lx
> diff --git a/target-sh4/cpu.c b/target-sh4/cpu.c
> index 5c65ab4..1b4289d 100644
> --- a/target-sh4/cpu.c
> +++ b/target-sh4/cpu.c
> @@ -70,6 +70,12 @@ static void superh_cpu_reset(CPUState *s)
>      set_default_nan_mode(1, &env->fp_status);
>  }
>  
> +static void superh_cpu_disas_set_info(CPUState *cpu, disassemble_info *info)
> +{
> +    info->mach = bfd_mach_sh4;
> +    info->print_insn = print_insn_sh;
> +}
> +
>  typedef struct SuperHCPUListState {
>      fprintf_function cpu_fprintf;
>      FILE *file;
> @@ -290,6 +296,8 @@ static void superh_cpu_class_init(ObjectClass *oc, void 
> *data)
>  #endif
>      dc->vmsd = &vmstate_sh_cpu;
>      cc->gdb_num_core_regs = 59;
> +
> +    cc->disas_set_info = superh_cpu_disas_set_info;
>  }
>  
>  static const TypeInfo superh_cpu_type_info = {

Acked-by: Aurelien Jarno <address@hidden>

-- 
Aurelien Jarno                          GPG: 4096R/1DDD8C9B
address@hidden                 http://www.aurel32.net



reply via email to

[Prev in Thread] Current Thread [Next in Thread]