On Wed, Jun 28, 2017 at 16:09:06 +0300, Lluís Vilanova wrote:
> Signed-off-by: Lluís Vilanova <vilan...@ac.upc.edu>
> ---

Reviewed-by: Emilio G. Cota <c...@braap.org>
Tested-by: Emilio G. Cota <c...@braap.org>

BTW have you tested icount mode?

Minor nits below.

>  target/i386/translate.c |  120 
> +++++++----------------------------------------
>  1 file changed, 18 insertions(+), 102 deletions(-)
> 
> diff --git a/target/i386/translate.c b/target/i386/translate.c
> index 3950fe95a4..295be26a95 100644
> --- a/target/i386/translate.c
> +++ b/target/i386/translate.c
(snip)
> @@ -8544,111 +8548,23 @@ static void i386_trblock_disas_log(const 
> DisasContextBase *dcbase,
>  
>  }
>  
> +static const TranslatorOps i386_trblock_ops = {
> +    .init_disas_context = i386_trblock_init_disas_context,
> +    .init_globals = i386_trblock_init_globals,
> +    .tb_start = i386_trblock_tb_start,
> +    .insn_start = i386_trblock_insn_start,
> +    .breakpoint_check = i386_trblock_breakpoint_check,
> +    .translate_insn = i386_trblock_translate_insn,
> +    .tb_stop = i386_trblock_tb_stop,
> +    .disas_log = i386_trblock_disas_log,
> +};

I like hard tabs here, which make things visually easier, e.g.:

> +static const TranslatorOps i386_trblock_ops = {
> +    .init_disas_context      = i386_trblock_init_disas_context,
> +    .init_globals            = i386_trblock_init_globals,

Don't know whether checkpatch likes it, but I do, and I see some
examples in the code base.

>  /* generate intermediate code for basic block 'tb'.  */
>  void gen_intermediate_code(CPUState *cpu, TranslationBlock *tb)
>  {
(snip)
> +    DisasContext dc1;
>  
> -    tb->size = dc->base.pc_next - dc->base.pc_first;
> -    tb->icount = num_insns;
> +    translate_block(&i386_trblock_ops, &dc1.base, cpu, tb);
>  }

I'd just call it dc, then.

                E.

Reply via email to