qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 00/21] Rewrite plugin code generation
@ 2024-04-04 23:05 Richard Henderson
  2024-04-04 23:05 ` [PATCH v2 01/21] tcg: Add TCGContext.emit_before_op Richard Henderson
                   ` (20 more replies)
  0 siblings, 21 replies; 22+ messages in thread
From: Richard Henderson @ 2024-04-04 23:05 UTC (permalink / raw)
  To: qemu-devel

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



^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2024-04-04 23:09 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-04-04 23:05 [PATCH v2 00/21] Rewrite plugin code generation Richard Henderson
2024-04-04 23:05 ` [PATCH v2 01/21] tcg: Add TCGContext.emit_before_op Richard Henderson
2024-04-04 23:05 ` [PATCH v2 02/21] tcg: Make tcg/helper-info.h self-contained Richard Henderson
2024-04-04 23:05 ` [PATCH v2 03/21] tcg: Pass function pointer to tcg_gen_call* Richard Henderson
2024-04-04 23:05 ` [PATCH v2 04/21] plugins: Zero new qemu_plugin_dyn_cb entries Richard Henderson
2024-04-04 23:05 ` [PATCH v2 05/21] plugins: Move function pointer in qemu_plugin_dyn_cb Richard Henderson
2024-04-04 23:05 ` [PATCH v2 06/21] plugins: Create TCGHelperInfo for all out-of-line callbacks Richard Henderson
2024-04-04 23:05 ` [PATCH v2 07/21] plugins: Use emit_before_op for PLUGIN_GEN_AFTER_INSN Richard Henderson
2024-04-04 23:05 ` [PATCH v2 08/21] plugins: Use emit_before_op for PLUGIN_GEN_FROM_TB Richard Henderson
2024-04-04 23:05 ` [PATCH v2 09/21] plugins: Add PLUGIN_GEN_AFTER_TB Richard Henderson
2024-04-04 23:06 ` [PATCH v2 10/21] plugins: Use emit_before_op for PLUGIN_GEN_FROM_INSN Richard Henderson
2024-04-04 23:06 ` [PATCH v2 11/21] plugins: Use emit_before_op for PLUGIN_GEN_FROM_MEM Richard Henderson
2024-04-04 23:06 ` [PATCH v2 12/21] plugins: Remove plugin helpers Richard Henderson
2024-04-04 23:06 ` [PATCH v2 13/21] tcg: Remove TCG_CALL_PLUGIN Richard Henderson
2024-04-04 23:06 ` [PATCH v2 14/21] tcg: Remove INDEX_op_plugin_cb_{start,end} Richard Henderson
2024-04-04 23:06 ` [PATCH v2 15/21] plugins: Simplify callback queues Richard Henderson
2024-04-04 23:06 ` [PATCH v2 16/21] plugins: Introduce PLUGIN_CB_MEM_REGULAR Richard Henderson
2024-04-04 23:06 ` [PATCH v2 17/21] plugins: Replace pr_ops with a proper debug dump flag Richard Henderson
2024-04-04 23:06 ` [PATCH v2 18/21] plugins: Split out common cb expanders Richard Henderson
2024-04-04 23:06 ` [PATCH v2 19/21] plugins: Merge qemu_plugin_tb_insn_get to plugin-gen.c Richard Henderson
2024-04-04 23:06 ` [PATCH v2 20/21] plugins: Inline plugin_gen_empty_callback Richard Henderson
2024-04-04 23:06 ` [PATCH v2 21/21] plugins: Update the documentation block for plugin-gen.c Richard Henderson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).