Richard Henderson writes: > On 06/25/2017 02:12 AM, Lluís Vilanova wrote: >> + DisasContext *dc = container_of(db, DisasContext, base); >> CPUX86State *env = cpu->env_ptr; >> - DisasContext dc1, *dc = &dc1; >> - DisasContextBase *db = &dc1.base; >> - uint32_t flags; >> - target_ulong cs_base; >> - int num_insns; >> - int max_insns; >> - >> - /* generate intermediate code */ >> - db->pc_first = tb->pc; >> - cs_base = tb->cs_base; >> - flags = tb->flags; >> + uint32_t flags = db->tb->flags; >> + target_ulong cs_base = db->tb->cs_base;
> As a nit, it would be better for the compiler if you keep only one of the two > pointers {dc,db} live. That is, once you've used container_of, always use > dc-> base instead of db. That's what the previous version did, but Emilio proposed to use both to keep diffs more readable. Still, if using both dc/db will confuse the compiler's alias analysis, I can revert it back to dc->base. Thanks, Lluis