Signed-off-by: Emilio G. Cota <c...@braap.org> --- include/exec/translator.h | 4 +++- accel/tcg/translator.c | 4 ++-- target/alpha/translate.c | 3 ++- target/arm/translate-a64.c | 3 ++- target/arm/translate.c | 6 ++++-- target/hppa/translate.c | 3 ++- target/i386/translate.c | 3 ++- target/m68k/translate.c | 3 ++- target/mips/translate.c | 3 ++- target/openrisc/translate.c | 3 ++- target/ppc/translate.c | 3 ++- target/riscv/translate.c | 3 ++- target/s390x/translate.c | 3 ++- target/sh4/translate.c | 3 ++- target/sparc/translate.c | 3 ++- target/xtensa/translate.c | 3 ++- 16 files changed, 35 insertions(+), 18 deletions(-)
diff --git a/include/exec/translator.h b/include/exec/translator.h index 71e7b2c347..a28147b3dd 100644 --- a/include/exec/translator.h +++ b/include/exec/translator.h @@ -20,6 +20,7 @@ #include "exec/exec-all.h" +#include "qemu/plugin.h" #include "tcg/tcg.h" @@ -112,7 +113,8 @@ typedef struct TranslatorOps { void (*insn_start)(DisasContextBase *db, CPUState *cpu); bool (*breakpoint_check)(DisasContextBase *db, CPUState *cpu, const CPUBreakpoint *bp); - void (*translate_insn)(DisasContextBase *db, CPUState *cpu); + void (*translate_insn)(DisasContextBase *db, CPUState *cpu, + struct qemu_plugin_insn *plugin_insn); void (*tb_stop)(DisasContextBase *db, CPUState *cpu); void (*disas_log)(const DisasContextBase *db, CPUState *cpu); } TranslatorOps; diff --git a/accel/tcg/translator.c b/accel/tcg/translator.c index afd0a49ea6..8591e4b72a 100644 --- a/accel/tcg/translator.c +++ b/accel/tcg/translator.c @@ -101,10 +101,10 @@ void translator_loop(const TranslatorOps *ops, DisasContextBase *db, && (tb_cflags(db->tb) & CF_LAST_IO)) { /* Accept I/O on the last instruction. */ gen_io_start(); - ops->translate_insn(db, cpu); + ops->translate_insn(db, cpu, NULL); gen_io_end(); } else { - ops->translate_insn(db, cpu); + ops->translate_insn(db, cpu, NULL); } /* Stop translation if translate_insn so indicated. */ diff --git a/target/alpha/translate.c b/target/alpha/translate.c index 25cd95931d..72a302e102 100644 --- a/target/alpha/translate.c +++ b/target/alpha/translate.c @@ -2983,7 +2983,8 @@ static bool alpha_tr_breakpoint_check(DisasContextBase *dcbase, CPUState *cpu, return true; } -static void alpha_tr_translate_insn(DisasContextBase *dcbase, CPUState *cpu) +static void alpha_tr_translate_insn(DisasContextBase *dcbase, CPUState *cpu, + struct qemu_plugin_insn *plugin_insn) { DisasContext *ctx = container_of(dcbase, DisasContext, base); CPUAlphaState *env = cpu->env_ptr; diff --git a/target/arm/translate-a64.c b/target/arm/translate-a64.c index bb9c4d8ac7..8b1e20dd59 100644 --- a/target/arm/translate-a64.c +++ b/target/arm/translate-a64.c @@ -13937,7 +13937,8 @@ static bool aarch64_tr_breakpoint_check(DisasContextBase *dcbase, CPUState *cpu, return true; } -static void aarch64_tr_translate_insn(DisasContextBase *dcbase, CPUState *cpu) +static void aarch64_tr_translate_insn(DisasContextBase *dcbase, CPUState *cpu, + struct qemu_plugin_insn *plugin_insn) { DisasContext *dc = container_of(dcbase, DisasContext, base); CPUARMState *env = cpu->env_ptr; diff --git a/target/arm/translate.c b/target/arm/translate.c index 1b4bacb522..2fd32a2684 100644 --- a/target/arm/translate.c +++ b/target/arm/translate.c @@ -12787,7 +12787,8 @@ static void arm_post_translate_insn(DisasContext *dc) translator_loop_temp_check(&dc->base); } -static void arm_tr_translate_insn(DisasContextBase *dcbase, CPUState *cpu) +static void arm_tr_translate_insn(DisasContextBase *dcbase, CPUState *cpu, + struct qemu_plugin_insn *plugin_insn) { DisasContext *dc = container_of(dcbase, DisasContext, base); CPUARMState *env = cpu->env_ptr; @@ -12854,7 +12855,8 @@ static bool thumb_insn_is_unconditional(DisasContext *s, uint32_t insn) return false; } -static void thumb_tr_translate_insn(DisasContextBase *dcbase, CPUState *cpu) +static void thumb_tr_translate_insn(DisasContextBase *dcbase, CPUState *cpu, + struct qemu_plugin_insn *plugin_insn) { DisasContext *dc = container_of(dcbase, DisasContext, base); CPUARMState *env = cpu->env_ptr; diff --git a/target/hppa/translate.c b/target/hppa/translate.c index df9179e70f..6c2a7fbc46 100644 --- a/target/hppa/translate.c +++ b/target/hppa/translate.c @@ -4737,7 +4737,8 @@ static bool hppa_tr_breakpoint_check(DisasContextBase *dcbase, CPUState *cs, return true; } -static void hppa_tr_translate_insn(DisasContextBase *dcbase, CPUState *cs) +static void hppa_tr_translate_insn(DisasContextBase *dcbase, CPUState *cs, + struct qemu_plugin_insn *plugin_insn) { DisasContext *ctx = container_of(dcbase, DisasContext, base); CPUHPPAState *env = cs->env_ptr; diff --git a/target/i386/translate.c b/target/i386/translate.c index 83c1ebe491..86e59d7bf7 100644 --- a/target/i386/translate.c +++ b/target/i386/translate.c @@ -8525,7 +8525,8 @@ static bool i386_tr_breakpoint_check(DisasContextBase *dcbase, CPUState *cpu, } } -static void i386_tr_translate_insn(DisasContextBase *dcbase, CPUState *cpu) +static void i386_tr_translate_insn(DisasContextBase *dcbase, CPUState *cpu, + struct qemu_plugin_insn *plugin_insn) { DisasContext *dc = container_of(dcbase, DisasContext, base); target_ulong pc_next = disas_insn(dc, cpu); diff --git a/target/m68k/translate.c b/target/m68k/translate.c index d55e707cf6..dd7d868b25 100644 --- a/target/m68k/translate.c +++ b/target/m68k/translate.c @@ -6087,7 +6087,8 @@ static bool m68k_tr_breakpoint_check(DisasContextBase *dcbase, CPUState *cpu, return true; } -static void m68k_tr_translate_insn(DisasContextBase *dcbase, CPUState *cpu) +static void m68k_tr_translate_insn(DisasContextBase *dcbase, CPUState *cpu, + struct qemu_plugin_insn *plugin_insn) { DisasContext *dc = container_of(dcbase, DisasContext, base); CPUM68KState *env = cpu->env_ptr; diff --git a/target/mips/translate.c b/target/mips/translate.c index 544e4dc19c..efafc6e795 100644 --- a/target/mips/translate.c +++ b/target/mips/translate.c @@ -25349,7 +25349,8 @@ static bool mips_tr_breakpoint_check(DisasContextBase *dcbase, CPUState *cs, return true; } -static void mips_tr_translate_insn(DisasContextBase *dcbase, CPUState *cs) +static void mips_tr_translate_insn(DisasContextBase *dcbase, CPUState *cs, + struct qemu_plugin_insn *plugin_insn) { CPUMIPSState *env = cs->env_ptr; DisasContext *ctx = container_of(dcbase, DisasContext, base); diff --git a/target/openrisc/translate.c b/target/openrisc/translate.c index a271cd3903..947330e10a 100644 --- a/target/openrisc/translate.c +++ b/target/openrisc/translate.c @@ -1301,7 +1301,8 @@ static bool openrisc_tr_breakpoint_check(DisasContextBase *dcbase, CPUState *cs, return true; } -static void openrisc_tr_translate_insn(DisasContextBase *dcbase, CPUState *cs) +static void openrisc_tr_translate_insn(DisasContextBase *dcbase, CPUState *cs, + struct qemu_plugin_insn *plugin_insn) { DisasContext *dc = container_of(dcbase, DisasContext, base); OpenRISCCPU *cpu = OPENRISC_CPU(cs); diff --git a/target/ppc/translate.c b/target/ppc/translate.c index 2d31b5f7a1..34c3ed0a41 100644 --- a/target/ppc/translate.c +++ b/target/ppc/translate.c @@ -7545,7 +7545,8 @@ static bool ppc_tr_breakpoint_check(DisasContextBase *dcbase, CPUState *cs, return true; } -static void ppc_tr_translate_insn(DisasContextBase *dcbase, CPUState *cs) +static void ppc_tr_translate_insn(DisasContextBase *dcbase, CPUState *cs, + struct qemu_plugin_insn *plugin_insn) { DisasContext *ctx = container_of(dcbase, DisasContext, base); CPUPPCState *env = cs->env_ptr; diff --git a/target/riscv/translate.c b/target/riscv/translate.c index 18d7b6d147..a33cf6802b 100644 --- a/target/riscv/translate.c +++ b/target/riscv/translate.c @@ -1843,7 +1843,8 @@ static bool riscv_tr_breakpoint_check(DisasContextBase *dcbase, CPUState *cpu, } -static void riscv_tr_translate_insn(DisasContextBase *dcbase, CPUState *cpu) +static void riscv_tr_translate_insn(DisasContextBase *dcbase, CPUState *cpu, + struct qemu_plugin_insn *plugin_insn) { DisasContext *ctx = container_of(dcbase, DisasContext, base); CPURISCVState *env = cpu->env_ptr; diff --git a/target/s390x/translate.c b/target/s390x/translate.c index b5bd56b7ee..6ac1a8d821 100644 --- a/target/s390x/translate.c +++ b/target/s390x/translate.c @@ -6228,7 +6228,8 @@ static bool s390x_tr_breakpoint_check(DisasContextBase *dcbase, CPUState *cs, return true; } -static void s390x_tr_translate_insn(DisasContextBase *dcbase, CPUState *cs) +static void s390x_tr_translate_insn(DisasContextBase *dcbase, CPUState *cs, + struct qemu_plugin_insn *plugin_insn) { CPUS390XState *env = cs->env_ptr; DisasContext *dc = container_of(dcbase, DisasContext, base); diff --git a/target/sh4/translate.c b/target/sh4/translate.c index ab254b0e8d..ea88d46c04 100644 --- a/target/sh4/translate.c +++ b/target/sh4/translate.c @@ -2313,7 +2313,8 @@ static bool sh4_tr_breakpoint_check(DisasContextBase *dcbase, CPUState *cs, return true; } -static void sh4_tr_translate_insn(DisasContextBase *dcbase, CPUState *cs) +static void sh4_tr_translate_insn(DisasContextBase *dcbase, CPUState *cs, + struct qemu_plugin_insn *plugin_insn) { CPUSH4State *env = cs->env_ptr; DisasContext *ctx = container_of(dcbase, DisasContext, base); diff --git a/target/sparc/translate.c b/target/sparc/translate.c index 74315cdf09..2fa8b68e0a 100644 --- a/target/sparc/translate.c +++ b/target/sparc/translate.c @@ -5894,7 +5894,8 @@ static bool sparc_tr_breakpoint_check(DisasContextBase *dcbase, CPUState *cs, return true; } -static void sparc_tr_translate_insn(DisasContextBase *dcbase, CPUState *cs) +static void sparc_tr_translate_insn(DisasContextBase *dcbase, CPUState *cs, + struct qemu_plugin_insn *plugin_insn) { DisasContext *dc = container_of(dcbase, DisasContext, base); CPUSPARCState *env = cs->env_ptr; diff --git a/target/xtensa/translate.c b/target/xtensa/translate.c index 46e1338448..14ab1c5ceb 100644 --- a/target/xtensa/translate.c +++ b/target/xtensa/translate.c @@ -1146,7 +1146,8 @@ static bool xtensa_tr_breakpoint_check(DisasContextBase *dcbase, CPUState *cpu, return true; } -static void xtensa_tr_translate_insn(DisasContextBase *dcbase, CPUState *cpu) +static void xtensa_tr_translate_insn(DisasContextBase *dcbase, CPUState *cpu, + struct qemu_plugin_insn *plugin_insn) { DisasContext *dc = container_of(dcbase, DisasContext, base); CPUXtensaState *env = cpu->env_ptr; -- 2.17.1