From 5ea492ac8d31e0dbe93a11cc95e503e610fccebc Mon Sep 17 00:00:00 2001 From: Andrew Waterman Date: Mon, 6 Apr 2026 15:46:38 -0700 Subject: [PATCH] Check triggers for store_slow_path with !actually_store Fixes #2262 --- riscv/mmu.cc | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/riscv/mmu.cc b/riscv/mmu.cc index 8a61ad14..7b7112fd 100644 --- a/riscv/mmu.cc +++ b/riscv/mmu.cc @@ -389,9 +389,15 @@ void mmu_t::store_slow_path(reg_t original_addr, std::size_t len, auto access_info = generate_access_info(original_addr, STORE, xlate_flags); reg_t transformed_addr = access_info.transformed_vaddr; - if (actually_store && check_triggers_store) - check_triggers(triggers::OPERATION_STORE, - transformed_addr, access_info.effective_virt, len, bytes); + if (check_triggers_store) { + if (actually_store) { + check_triggers(triggers::OPERATION_STORE, + transformed_addr, access_info.effective_virt, len, bytes); + } else { + check_triggers(triggers::OPERATION_STORE, + transformed_addr, access_info.effective_virt, len); + } + } if (transformed_addr & (len - 1)) { bool gva = access_info.effective_virt;