summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--riscv/riscv.sail5
1 files changed, 4 insertions, 1 deletions
diff --git a/riscv/riscv.sail b/riscv/riscv.sail
index 27ec8a2f..ca30f4b4 100644
--- a/riscv/riscv.sail
+++ b/riscv/riscv.sail
@@ -790,8 +790,11 @@ function clause execute(LOADRES(aq, rl, rs1, width, rd)) =
WORD => vaddr[1..0] == 0b00,
DOUBLE => vaddr[2..0] == 0b000
} in
+ /* "LR faults like a normal load, even though it's in the AMO major opcode space."
+ - Andrew Waterman, isa-dev, 10 Jul 2018.
+ */
if (~ (aligned))
- then { handle_mem_exception(vaddr, E_SAMO_Addr_Align); false }
+ then { handle_mem_exception(vaddr, E_Load_Addr_Align); false }
else match translateAddr(vaddr, Read, Data) {
TR_Failure(e) => { handle_mem_exception(vaddr, e); false },
TR_Address(addr) =>