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