summaryrefslogtreecommitdiff
path: root/risc-v/riscv.sail
diff options
context:
space:
mode:
authorRobert Norton2017-08-15 13:04:34 +0100
committerRobert Norton2017-08-15 13:04:34 +0100
commite8dcc8ab28d2d7b7764db95ba611b4d64b5bdade (patch)
tree1a264e245cdebdf9171345025ac79e38144c7f4b /risc-v/riscv.sail
parent1a94f80b5d518e9d79daf9b253331d5b7936761f (diff)
riscv: limit stores to only relevant bytes.
Diffstat (limited to 'risc-v/riscv.sail')
-rw-r--r--risc-v/riscv.sail6
1 files changed, 3 insertions, 3 deletions
diff --git a/risc-v/riscv.sail b/risc-v/riscv.sail
index e464c5f7..01fcbdc4 100644
--- a/risc-v/riscv.sail
+++ b/risc-v/riscv.sail
@@ -236,9 +236,9 @@ function clause execute (STORE(imm, rs2, rs1, width)) =
};
let rs2_val = rGPR(rs2) in
switch (width) {
- case BYTE -> MEMval(addr, 1, rs2_val)
- case WORD -> MEMval(addr, 2, rs2_val)
- case HALF -> MEMval(addr, 4, rs2_val)
+ case BYTE -> MEMval(addr, 1, rs2_val[7..0])
+ case WORD -> MEMval(addr, 2, rs2_val[15..0])
+ case HALF -> MEMval(addr, 4, rs2_val[31..0])
case DOUBLE -> MEMval(addr, 8, rs2_val)
}
}