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