trigger_common_match() has some warning log messages in it for
unsupported triggers. Don't call it in BP/WP checking except for
mcontrol/mcontrol6 triggers applicable to BP/WPs.
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
---
target/riscv/debug.c | 22 ++++++++++++++++++----
1 file changed, 18 insertions(+), 4 deletions(-)
diff --git a/target/riscv/debug.c b/target/riscv/debug.c
index 5664466749..4273ab7a8d 100644
--- a/target/riscv/debug.c
+++ b/target/riscv/debug.c
@@ -952,6 +952,14 @@ bool riscv_cpu_debug_check_breakpoint(CPUState *cs)
for (i = 0; i < RV_MAX_TRIGGERS; i++) {
trigger_type = get_trigger_type(env, i);
+ switch (trigger_type) {
+ case TRIGGER_TYPE_AD_MATCH:
+ case TRIGGER_TYPE_AD_MATCH6:
+ break;
+ default:
+ continue; /* No other types match breakpoint */
+ }
+
if (!trigger_common_match(env, trigger_type, i)) {
continue;
}
@@ -976,8 +984,7 @@ bool riscv_cpu_debug_check_breakpoint(CPUState *cs)
}
break;
default:
- /* other trigger types are not supported or irrelevant */
- break;
+ g_assert_not_reached();
}
}
}
@@ -998,6 +1005,14 @@ bool riscv_cpu_debug_check_watchpoint(CPUState *cs, CPUWatchpoint *wp)
for (i = 0; i < RV_MAX_TRIGGERS; i++) {
trigger_type = get_trigger_type(env, i);
+ switch (trigger_type) {
+ case TRIGGER_TYPE_AD_MATCH:
+ case TRIGGER_TYPE_AD_MATCH6:
+ break;
+ default:
+ continue; /* No other types match watchpoint */
+ }
+
if (!trigger_common_match(env, trigger_type, i)) {
continue;
}
@@ -1036,8 +1051,7 @@ bool riscv_cpu_debug_check_watchpoint(CPUState *cs, CPUWatchpoint *wp)
}
break;
default:
- /* other trigger types are not supported */
- break;
+ g_assert_not_reached();
}
}
--
2.51.0