diff options
author | Richard Henderson <richard.henderson@linaro.org> | 2021-02-02 09:40:22 -1000 |
---|---|---|
committer | Richard Henderson <richard.henderson@linaro.org> | 2021-06-19 11:08:00 -0700 |
commit | 6eea04347eb667f1326cb9b68c5b8f3d737f565d (patch) | |
tree | 138cbacf66b4dca26dee726df9c398bf12bf960e /tcg/tcg.c | |
parent | 650898891837a9772a5410e73c637a55d99e1e50 (diff) | |
download | qemu-6eea04347eb667f1326cb9b68c5b8f3d737f565d.zip qemu-6eea04347eb667f1326cb9b68c5b8f3d737f565d.tar.gz qemu-6eea04347eb667f1326cb9b68c5b8f3d737f565d.tar.bz2 |
tcg/tci: Implement goto_ptr
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é <f4bug@amsat.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Diffstat (limited to 'tcg/tcg.c')
-rw-r--r-- | tcg/tcg.c | 8 |
1 files changed, 7 insertions, 1 deletions
@@ -785,10 +785,16 @@ void tcg_prologue_init(TCGContext *s) } #endif - /* Assert that goto_ptr is implemented completely. */ +#ifndef CONFIG_TCG_INTERPRETER + /* + * Assert that goto_ptr is implemented completely, setting an epilogue. + * For tci, we use NULL as the signal to return from the interpreter, + * so skip this check. + */ if (TCG_TARGET_HAS_goto_ptr) { tcg_debug_assert(tcg_code_gen_epilogue != NULL); } +#endif } void tcg_func_start(TCGContext *s) |