Browse Source

Check triggers for store_slow_path with !actually_store

Fixes #2262
pull/2266/head
Andrew Waterman 1 month ago
parent
commit
5ea492ac8d
Failed to extract signature
  1. 12
      riscv/mmu.cc

12
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); auto access_info = generate_access_info(original_addr, STORE, xlate_flags);
reg_t transformed_addr = access_info.transformed_vaddr; reg_t transformed_addr = access_info.transformed_vaddr;
if (actually_store && check_triggers_store) if (check_triggers_store) {
check_triggers(triggers::OPERATION_STORE, if (actually_store) {
transformed_addr, access_info.effective_virt, len, bytes); 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)) { if (transformed_addr & (len - 1)) {
bool gva = access_info.effective_virt; bool gva = access_info.effective_virt;

Loading…
Cancel
Save