This is the v3 of this series. v2 for context: https://lists.gnu.org/archive/html/qemu-devel/2017-04/msg04342.html
Changes from v2 -- all due to Richard's comments: - Inlined tb_from_jmp_cache into the TCG helper; now that this helper is common there is no point in having a separate function for this. - Compile-tested for all targets. - Dropped the TCG alignment patches for now. - Added reviewed-by tags. - Removed stray goto_tb from tcg_dump_ops. (That was a leftover that should have been removed long ago.) - merged helper_lookup_tb_ptr and goto_ptr into gen_lookup_and_goto_ptr. This makes the calling code simpler and also prunes out the lookup when goto_ptr isn't implemented by the backend. - tcg/i386: add the "pre-epilogue" instruction that sets eax to 0, instead of setting eax to 0 before every goto_ptr. - return "r" instead of "ri" for goto_ptr's op def. (*ouch!*) - target/arm: extend to tl before calling the lookup_and_goto_ptr helper, thereby fixing aarch64-* target compilation. Also re-ran all measurements, and dropped the noinline measurements since now there's only a single (inlined) caller. You can inspect/fetch the changes at: https://github.com/cota/qemu/tree/tcg-opt-v3 Thanks, Emilio