Message ID | 20240316015720.3661236-14-richard.henderson@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | plugins: Rewrite plugin code generation | expand |
On 3/16/24 05:57, Richard Henderson wrote: > Since we no longer emit plugin helpers during the initial code > translation phase, we don't need to specially mark plugin helpers. > > Signed-off-by: Richard Henderson <richard.henderson@linaro.org> > --- > include/tcg/tcg.h | 2 -- > plugins/core.c | 10 ++++------ > tcg/tcg.c | 4 +--- > 3 files changed, 5 insertions(+), 11 deletions(-) > > diff --git a/include/tcg/tcg.h b/include/tcg/tcg.h > index 95a7f4d010..df66e8f012 100644 > --- a/include/tcg/tcg.h > +++ b/include/tcg/tcg.h > @@ -353,8 +353,6 @@ typedef TCGv_ptr TCGv_env; > #define TCG_CALL_NO_SIDE_EFFECTS 0x0004 > /* Helper is G_NORETURN. */ > #define TCG_CALL_NO_RETURN 0x0008 > -/* Helper is part of Plugins. */ > -#define TCG_CALL_PLUGIN 0x0010 > > /* convenience version of most used call flags */ > #define TCG_CALL_NO_RWG TCG_CALL_NO_READ_GLOBALS > diff --git a/plugins/core.c b/plugins/core.c > index b0a2e80874..b0615f1e7f 100644 > --- a/plugins/core.c > +++ b/plugins/core.c > @@ -339,9 +339,8 @@ void plugin_register_dyn_cb__udata(GArray **arr, > void *udata) > { > static TCGHelperInfo info[3] = { > - [QEMU_PLUGIN_CB_NO_REGS].flags = TCG_CALL_NO_RWG | TCG_CALL_PLUGIN, > - [QEMU_PLUGIN_CB_R_REGS].flags = TCG_CALL_NO_WG | TCG_CALL_PLUGIN, > - [QEMU_PLUGIN_CB_RW_REGS].flags = TCG_CALL_PLUGIN, > + [QEMU_PLUGIN_CB_NO_REGS].flags = TCG_CALL_NO_RWG, > + [QEMU_PLUGIN_CB_R_REGS].flags = TCG_CALL_NO_WG, > /* > * Match qemu_plugin_vcpu_udata_cb_t: > * void (*)(uint32_t, void *) > @@ -375,9 +374,8 @@ void plugin_register_vcpu_mem_cb(GArray **arr, > !__builtin_types_compatible_p(qemu_plugin_meminfo_t, int32_t)); > > static TCGHelperInfo info[3] = { > - [QEMU_PLUGIN_CB_NO_REGS].flags = TCG_CALL_NO_RWG | TCG_CALL_PLUGIN, > - [QEMU_PLUGIN_CB_R_REGS].flags = TCG_CALL_NO_WG | TCG_CALL_PLUGIN, > - [QEMU_PLUGIN_CB_RW_REGS].flags = TCG_CALL_PLUGIN, > + [QEMU_PLUGIN_CB_NO_REGS].flags = TCG_CALL_NO_RWG, > + [QEMU_PLUGIN_CB_R_REGS].flags = TCG_CALL_NO_WG, > /* > * Match qemu_plugin_vcpu_mem_cb_t: > * void (*)(uint32_t, qemu_plugin_meminfo_t, uint64_t, void *) > diff --git a/tcg/tcg.c b/tcg/tcg.c > index 0bf218314b..363a065e28 100644 > --- a/tcg/tcg.c > +++ b/tcg/tcg.c > @@ -2269,9 +2269,7 @@ static void tcg_gen_callN(void *func, TCGHelperInfo *info, > > #ifdef CONFIG_PLUGIN > /* Flag helpers that may affect guest state */ > - if (tcg_ctx->plugin_insn && > - !(info->flags & TCG_CALL_PLUGIN) && > - !(info->flags & TCG_CALL_NO_SIDE_EFFECTS)) { > + if (tcg_ctx->plugin_insn && !(info->flags & TCG_CALL_NO_SIDE_EFFECTS)) { > tcg_ctx->plugin_insn->calls_helpers = true; > } > #endif Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
diff --git a/include/tcg/tcg.h b/include/tcg/tcg.h index 95a7f4d010..df66e8f012 100644 --- a/include/tcg/tcg.h +++ b/include/tcg/tcg.h @@ -353,8 +353,6 @@ typedef TCGv_ptr TCGv_env; #define TCG_CALL_NO_SIDE_EFFECTS 0x0004 /* Helper is G_NORETURN. */ #define TCG_CALL_NO_RETURN 0x0008 -/* Helper is part of Plugins. */ -#define TCG_CALL_PLUGIN 0x0010 /* convenience version of most used call flags */ #define TCG_CALL_NO_RWG TCG_CALL_NO_READ_GLOBALS diff --git a/plugins/core.c b/plugins/core.c index b0a2e80874..b0615f1e7f 100644 --- a/plugins/core.c +++ b/plugins/core.c @@ -339,9 +339,8 @@ void plugin_register_dyn_cb__udata(GArray **arr, void *udata) { static TCGHelperInfo info[3] = { - [QEMU_PLUGIN_CB_NO_REGS].flags = TCG_CALL_NO_RWG | TCG_CALL_PLUGIN, - [QEMU_PLUGIN_CB_R_REGS].flags = TCG_CALL_NO_WG | TCG_CALL_PLUGIN, - [QEMU_PLUGIN_CB_RW_REGS].flags = TCG_CALL_PLUGIN, + [QEMU_PLUGIN_CB_NO_REGS].flags = TCG_CALL_NO_RWG, + [QEMU_PLUGIN_CB_R_REGS].flags = TCG_CALL_NO_WG, /* * Match qemu_plugin_vcpu_udata_cb_t: * void (*)(uint32_t, void *) @@ -375,9 +374,8 @@ void plugin_register_vcpu_mem_cb(GArray **arr, !__builtin_types_compatible_p(qemu_plugin_meminfo_t, int32_t)); static TCGHelperInfo info[3] = { - [QEMU_PLUGIN_CB_NO_REGS].flags = TCG_CALL_NO_RWG | TCG_CALL_PLUGIN, - [QEMU_PLUGIN_CB_R_REGS].flags = TCG_CALL_NO_WG | TCG_CALL_PLUGIN, - [QEMU_PLUGIN_CB_RW_REGS].flags = TCG_CALL_PLUGIN, + [QEMU_PLUGIN_CB_NO_REGS].flags = TCG_CALL_NO_RWG, + [QEMU_PLUGIN_CB_R_REGS].flags = TCG_CALL_NO_WG, /* * Match qemu_plugin_vcpu_mem_cb_t: * void (*)(uint32_t, qemu_plugin_meminfo_t, uint64_t, void *) diff --git a/tcg/tcg.c b/tcg/tcg.c index 0bf218314b..363a065e28 100644 --- a/tcg/tcg.c +++ b/tcg/tcg.c @@ -2269,9 +2269,7 @@ static void tcg_gen_callN(void *func, TCGHelperInfo *info, #ifdef CONFIG_PLUGIN /* Flag helpers that may affect guest state */ - if (tcg_ctx->plugin_insn && - !(info->flags & TCG_CALL_PLUGIN) && - !(info->flags & TCG_CALL_NO_SIDE_EFFECTS)) { + if (tcg_ctx->plugin_insn && !(info->flags & TCG_CALL_NO_SIDE_EFFECTS)) { tcg_ctx->plugin_insn->calls_helpers = true; } #endif
Since we no longer emit plugin helpers during the initial code translation phase, we don't need to specially mark plugin helpers. Signed-off-by: Richard Henderson <richard.henderson@linaro.org> --- include/tcg/tcg.h | 2 -- plugins/core.c | 10 ++++------ tcg/tcg.c | 4 +--- 3 files changed, 5 insertions(+), 11 deletions(-)