On 10/7/26 22:53, Richard Henderson wrote:
Use the ID of the breakpoint instead of a loop over all.

Signed-off-by: Richard Henderson <[email protected]>
---
  target/xtensa/dbg_helper.c | 9 +--------
  1 file changed, 1 insertion(+), 8 deletions(-)

diff --git a/target/xtensa/dbg_helper.c b/target/xtensa/dbg_helper.c
index 557a7852c8..b08bd03435 100644
--- a/target/xtensa/dbg_helper.c
+++ b/target/xtensa/dbg_helper.c
@@ -67,18 +67,11 @@ void HELPER(wsr_ibreaka)(CPUXtensaState *env, uint32_t i, 
uint32_t v)
  bool xtensa_debug_check_breakpoint(CPUState *cs, CPUBreakpoint *bp)
  {
      CPUXtensaState *env = cpu_env(cs);
-    unsigned int i;
if (xtensa_get_cintlevel(env) >= env->config->debug_level) {
          return false;
      }
-    for (i = 0; i < env->config->nibreak; ++i) {
-        if (env->sregs[IBREAKENABLE] & (1 << i) &&
-            env->sregs[IBREAKA + i] == env->pc) {
-            return true;
-        }
-    }
-    return false;
+    return (env->sregs[IBREAKENABLE] >> bp->id) & 1;

or

       return extract32(env->sregs[IBREAKENABLE], bp->id, 1);

Reviewed-by: Philippe Mathieu-Daudé <[email protected]>

  }
static void set_dbreak(CPUXtensaState *env, unsigned i, uint32_t dbreaka,


Reply via email to