On Fri, 05 Sep 2025 05:46:56 +0900, Julian Ganz wrote: > > We recently introduced API for registering callbacks for trap related > events as well as the corresponding hook functions. Due to differences > between architectures, the latter need to be called from target specific > code. > > This change places hooks for SuperH targets. > Reviewed-by: Yoshinori Sato <[email protected]> > Reviewed-by: Richard Henderson <[email protected]> > Signed-off-by: Julian Ganz <[email protected]> > --- > target/sh4/helper.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/target/sh4/helper.c b/target/sh4/helper.c > index 1744ef0e6d..fb26d5c35d 100644 > --- a/target/sh4/helper.c > +++ b/target/sh4/helper.c > @@ -24,6 +24,7 @@ > #include "exec/page-protection.h" > #include "exec/target_page.h" > #include "exec/log.h" > +#include "qemu/plugin.h" > > #if !defined(CONFIG_USER_ONLY) > #include "hw/sh4/sh_intc.h" > @@ -60,6 +61,7 @@ void superh_cpu_do_interrupt(CPUState *cs) > CPUSH4State *env = cpu_env(cs); > int do_irq = cpu_test_interrupt(cs, CPU_INTERRUPT_HARD); > int do_exp, irq_vector = cs->exception_index; > + uint64_t last_pc = env->pc; > > /* prioritize exceptions over interrupts */ > > @@ -176,12 +178,14 @@ void superh_cpu_do_interrupt(CPUState *cs) > env->pc = env->vbr + 0x100; > break; > } > + qemu_plugin_vcpu_exception_cb(cs, last_pc); > return; > } > > if (do_irq) { > env->intevt = irq_vector; > env->pc = env->vbr + 0x600; > + qemu_plugin_vcpu_interrupt_cb(cs, last_pc); > return; > } > } > -- > 2.49.1 >
