Browse Source
Check triggers for store_slow_path with !actually_store
Fixes #2262
pull/2266/head
Andrew Waterman
1 month ago
Failed to extract signature
1 changed files with
9 additions and
3 deletions
-
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) |
|
|
|
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; |
|
|
|
|