diff --git a/linux-user/e2k/cpu_loop.c b/linux-user/e2k/cpu_loop.c index e518d22f5b..55e736cd76 100644 --- a/linux-user/e2k/cpu_loop.c +++ b/linux-user/e2k/cpu_loop.c @@ -125,4 +125,6 @@ void target_cpu_copy_regs(CPUE2KState *env, struct target_pt_regs *regs) env->psp = regs->psp; env->usd_lo = regs->usd_lo; env->usd_hi = regs->usd_hi; + + e2k_break_save_state(env); } diff --git a/target/e2k/cpu.h b/target/e2k/cpu.h index ba5c660af8..2c2d3ab609 100644 --- a/target/e2k/cpu.h +++ b/target/e2k/cpu.h @@ -371,6 +371,7 @@ void e2k_cpu_do_interrupt(CPUState *cs); int e2k_cpu_signal_handler(int host_signum, void *pinfo, void *puc); int e2k_cpu_gdb_read_register(CPUState *cs, GByteArray *mem_buf, int n); int e2k_cpu_gdb_write_register(CPUState *cs, uint8_t *mem_buf, int n); +void e2k_break_save_state(CPUE2KState *env); #define cpu_signal_handler e2k_cpu_signal_handler diff --git a/target/e2k/helper.c b/target/e2k/helper.c index 913eea8936..e82193ec98 100644 --- a/target/e2k/helper.c +++ b/target/e2k/helper.c @@ -246,7 +246,7 @@ void helper_raise_exception(CPUE2KState *env, int tt) cpu_loop_exit(cs); } -static void break_save_state(CPUE2KState *env) +void e2k_break_save_state(CPUE2KState *env) { int wbs;