Richard Henderson <r...@twiddle.net> writes: > On 07/11/2017 07:59 AM, Alex Bennée wrote: >> if (use_goto_tb(s, dest)) { >> tcg_gen_goto_tb(n); >> gen_set_pc_im(s, dest); >> tcg_gen_exit_tb((uintptr_t)s->tb + n); >> + s->is_jmp = DISAS_TB_JUMP; >> } else { >> gen_set_pc_im(s, dest); >> gen_goto_ptr(); >> + s->is_jmp = DISAS_JUMP; >> } > > I think DISAS_TB_JUMP is appropriate for both cases. When not using > goto_tb, the jump is still static and we still chain to the next TB > via goto_ptr.
OK - I guess we need to nail down what the essential difference is between the two. I understood DISAS_TB_JUMP as a static known PC which can be patched in the generated code because we know the two addresses are in the same page - whereas DISAS_JUMP is a "computed" jump although in this case the PC is already known. Does making a distinction between computed and non-computer inter-page jumps make any sense anyway? > > Otherwise, > > Reviewed-by: Richard Henderson <r...@twiddle.net> > > > r~ -- Alex Bennée