提交 098733c6 编写于 作者: W William Wang

rv64,atom: raise pmp SAF even if scInvalid

上级 d2d2313c
......@@ -49,8 +49,9 @@ def_rtl(amo_slow_path, rtlreg_t *dest, const rtlreg_t *src1, const rtlreg_t *src
paddr = isa_mmu_translate(*dsrc1, width, MEM_TYPE_WRITE);
}
return_on_mem_ex();
// check store access fault
if (!in_pmem(paddr)) {
// Even if scInvalid, SAF (if raised) also needs to be reported
// Check address space range and pmp
if (!in_pmem(paddr) || !isa_pmp_check_permission(paddr, width, MEM_TYPE_WRITE, cpu.mode)) {
INTR_TVAL_REG(EX_SAF) = *src1;
longjmp_exception(EX_SAF);
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册