Forget it, I misread patch 6; sorry.
Lluis Lluís Vilanova writes: > Peter Maydell writes: > [...] >> diff --git a/include/exec/gen-icount.h b/include/exec/gen-icount.h >> index c858a73..384153b 100644 >> --- a/include/exec/gen-icount.h >> +++ b/include/exec/gen-icount.h >> @@ -7,10 +7,19 @@ >> static TCGArg *icount_arg; >> static int icount_label; >> +static int exitreq_label; >> static inline void gen_icount_start(void) >> { >> TCGv_i32 count; >> + TCGv_i32 flag; >> + >> + exitreq_label = gen_new_label(); >> + flag = tcg_temp_local_new_i32(); >> + tcg_gen_ld_i32(flag, cpu_env, >> + offsetof(CPUState, tcg_exit_req) - ENV_OFFSET); >> + tcg_gen_brcondi_i32(TCG_COND_NE, flag, 0, exitreq_label); >> + tcg_temp_free_i32(flag); > It feels weird to me that this code is in 'gen_icount_start' as opposed that > some other separate function like 'gen_tb_exit_check'. >> if (!use_icount) >> return; >> @@ -29,6 +38,9 @@ static inline void gen_icount_start(void) >> static void gen_icount_end(TranslationBlock *tb, int num_insns) >> { >> + gen_set_label(exitreq_label); >> + tcg_gen_exit_tb((tcg_target_long)tb + TB_EXIT_REQUESTED); >> + > This too feels weird to me. > Lluis > -- > "And it's much the same thing with knowledge, for whenever you learn > something new, the whole world becomes that much richer." > -- The Princess of Pure Reason, as told by Norton Juster in The Phantom > Tollbooth -- "And it's much the same thing with knowledge, for whenever you learn something new, the whole world becomes that much richer." -- The Princess of Pure Reason, as told by Norton Juster in The Phantom Tollbooth