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.
r~