Add a (trivial) mechanism for emitting code into the middle of the opcode sequence: tcg_ctx->emit_before_op.
Rip out all of the "empty" generation and "copy" to modify those sequences. Replace with regular code generation once we know what values to place. Changes for v2: * Fix TCI build failure. * Drop qemu_plugin_insn_cleanup_fn movement; I have another plan for that. Patches requiring review: 7 and 8. r~ Richard Henderson (21): tcg: Add TCGContext.emit_before_op tcg: Make tcg/helper-info.h self-contained tcg: Pass function pointer to tcg_gen_call* plugins: Zero new qemu_plugin_dyn_cb entries plugins: Move function pointer in qemu_plugin_dyn_cb plugins: Create TCGHelperInfo for all out-of-line callbacks plugins: Use emit_before_op for PLUGIN_GEN_AFTER_INSN plugins: Use emit_before_op for PLUGIN_GEN_FROM_TB plugins: Add PLUGIN_GEN_AFTER_TB plugins: Use emit_before_op for PLUGIN_GEN_FROM_INSN plugins: Use emit_before_op for PLUGIN_GEN_FROM_MEM plugins: Remove plugin helpers tcg: Remove TCG_CALL_PLUGIN tcg: Remove INDEX_op_plugin_cb_{start,end} plugins: Simplify callback queues plugins: Introduce PLUGIN_CB_MEM_REGULAR plugins: Replace pr_ops with a proper debug dump flag plugins: Split out common cb expanders plugins: Merge qemu_plugin_tb_insn_get to plugin-gen.c plugins: Inline plugin_gen_empty_callback plugins: Update the documentation block for plugin-gen.c accel/tcg/plugin-helpers.h | 5 - include/exec/helper-gen-common.h | 4 - include/exec/helper-proto-common.h | 4 - include/exec/plugin-gen.h | 4 - include/qemu/log.h | 1 + include/qemu/plugin.h | 67 +- include/tcg/helper-info.h | 3 + include/tcg/tcg-op-common.h | 4 +- include/tcg/tcg-opc.h | 4 +- include/tcg/tcg.h | 32 +- include/exec/helper-gen.h.inc | 24 +- accel/tcg/plugin-gen.c | 1007 +++++++--------------------- plugins/api.c | 26 +- plugins/core.c | 61 +- tcg/tcg-op-ldst.c | 6 +- tcg/tcg-op.c | 8 +- tcg/tcg.c | 92 ++- tcg/tci.c | 1 + util/log.c | 4 + 19 files changed, 417 insertions(+), 940 deletions(-) delete mode 100644 accel/tcg/plugin-helpers.h -- 2.34.1