aboutsummaryrefslogtreecommitdiff
path: root/target/xtensa/helper.c
diff options
context:
space:
mode:
Diffstat (limited to 'target/xtensa/helper.c')
-rw-r--r--target/xtensa/helper.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/target/xtensa/helper.c b/target/xtensa/helper.c
index f6632df646..a9f8907083 100644
--- a/target/xtensa/helper.c
+++ b/target/xtensa/helper.c
@@ -231,6 +231,18 @@ void xtensa_breakpoint_handler(CPUState *cs)
}
cpu_loop_exit_noexc(cs);
}
+ } else {
+ if (cpu_breakpoint_test(cs, env->pc, BP_GDB)
+ || !cpu_breakpoint_test(cs, env->pc, BP_CPU)) {
+ return;
+ }
+ if (env->sregs[ICOUNT] == 0xffffffff &&
+ xtensa_get_cintlevel(env) < env->sregs[ICOUNTLEVEL]) {
+ debug_exception_env(env, DEBUGCAUSE_IC);
+ } else {
+ debug_exception_env(env, DEBUGCAUSE_IB);
+ }
+ cpu_loop_exit_noexc(cs);
}
}