On 6/1/21 5:00 PM, Richard Henderson wrote: > This operation is critical to staying within the interpretation > loop longer, which avoids the overhead of setup and teardown for > many TBs. > > The check in tcg_prologue_init is disabled because TCI does > want to use NULL to indicate exit, as opposed to branching to > a real epilogue. > > Tested-by: Philippe Mathieu-Daudé <f4...@amsat.org> > Signed-off-by: Richard Henderson <richard.hender...@linaro.org> > --- > tcg/tci/tcg-target-con-set.h | 1 + > tcg/tci/tcg-target.h | 2 +- > tcg/tcg.c | 2 ++ > tcg/tci.c | 19 +++++++++++++++++++ > tcg/tci/tcg-target.c.inc | 16 ++++++++++++++++ > 5 files changed, 39 insertions(+), 1 deletion(-)
> diff --git a/tcg/tcg.c b/tcg/tcg.c > index c8e6dfb845..3d856371a1 100644 > --- a/tcg/tcg.c > +++ b/tcg/tcg.c > @@ -1353,10 +1353,12 @@ void tcg_prologue_init(TCGContext *s) > } > #endif > > +#ifndef CONFIG_TCG_INTERPRETER > /* Assert that goto_ptr is implemented completely. */ Maybe expand the comment briefly explaining the TCI case? Otherwise: Reviewed-by: Philippe Mathieu-Daudé <f4...@amsat.org> > if (TCG_TARGET_HAS_goto_ptr) { > tcg_debug_assert(tcg_code_gen_epilogue != NULL); > } > +#endif > }