Skip to content

Commit 42776e6

Browse files
committed
pointer masking: Let cache-block zero instruction (cbo.zero) take into account pointer masking
1 parent 5beff7a commit 42776e6

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

riscv/mmu.h

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -221,9 +221,12 @@ class mmu_t
221221
}
222222

223223
void cbo_zero(reg_t addr) {
224-
auto base = addr & ~(blocksz - 1);
224+
auto access_info = generate_access_info(addr, STORE, {});
225+
reg_t transformed_addr = access_info.transformed_vaddr;
226+
227+
auto base = transformed_addr & ~(blocksz - 1);
225228
for (size_t offset = 0; offset < blocksz; offset += 1) {
226-
check_triggers(triggers::OPERATION_STORE, base + offset, false, addr, std::nullopt);
229+
check_triggers(triggers::OPERATION_STORE, base + offset, false, transformed_addr, std::nullopt);
227230
store<uint8_t>(base + offset, 0);
228231
}
229232
}

0 commit comments

Comments
 (0)