summaryrefslogtreecommitdiff
path: root/riscv
diff options
context:
space:
mode:
authorPrashanth Mundkur2018-07-11 15:34:37 -0700
committerPrashanth Mundkur2018-07-11 21:04:43 -0700
commit374de34cbb22da437f856ac39154aabe72a651bb (patch)
tree8f98faa268847220f7942565bcf5618f832ada77 /riscv
parente3e2f7137be43771aace42694c8d5112f6849039 (diff)
Update the exception code for riscv LR after clarification on isa-dev.
Diffstat (limited to 'riscv')
-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) =>