Richard Henderson writes: > On 07/06/2017 11:25 PM, Lluís Vilanova wrote: >>>> /* convert one instruction. s->base.is_jmp is set if the translation must >>>> be stopped. Return the next pc value */ >>>> -static target_ulong disas_insn(CPUX86State *env, DisasContext *s, >>>> - target_ulong pc_start) >>>> +static target_ulong disas_insn(DisasContextBase *dcbase, CPUState *cpu) >>>> { >>>> + DisasContext *s = container_of(dcbase, DisasContext, base); >>>> + CPUX86State *env = cpu->env_ptr; >> >>> Minor nit: you can pass dc (*s) here directly, no need for container_of >> [...] >> >> I prefer not to so that the code will work in the future (i.e., not assuming >> the >> location of base inside disascontext).
> There's clearly a misunderstanding here. > Emilio is saying that disas_insn is not a hook and private to the > front-end. Therefore the argument to the function should be "DisasContet *s" > and > not "DisasContextBase *dcbase". > And I agree. Passing DisasContext should be preferred where possible. Woooops, my bad! :) Thanks, Lluis