aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Rugg <pdr32@cam.ac.uk>2020-01-20 13:58:37 +0000
committerPeter Rugg <pdr32@cam.ac.uk>2020-01-20 14:00:06 +0000
commit55a0b2529a2995b5cc9240fa9ae1a0c9b3cdadf5 (patch)
tree4c28898be4022de0a49443d99b7f94d16fc1d671
parent1356977d7866d3ff1b4d7de6b22700aa659cae43 (diff)
downloadsail-riscv-55a0b2529a2995b5cc9240fa9ae1a0c9b3cdadf5.zip
sail-riscv-55a0b2529a2995b5cc9240fa9ae1a0c9b3cdadf5.tar.gz
sail-riscv-55a0b2529a2995b5cc9240fa9ae1a0c9b3cdadf5.tar.bz2
Add reporting of >64-bit RVFI mem accesses
-rw-r--r--model/riscv_mem.sail6
1 files changed, 5 insertions, 1 deletions
diff --git a/model/riscv_mem.sail b/model/riscv_mem.sail
index e34a8f4..b3fa37d 100644
--- a/model/riscv_mem.sail
+++ b/model/riscv_mem.sail
@@ -80,7 +80,8 @@ function rvfi_read (addr, width, result) = {
MemValue(v) => if width <= 8
then { rvfi_exec->rvfi_mem_rdata() = sail_zero_extend(v,64);
rvfi_exec->rvfi_mem_rmask() = rvfi_encode_width_mask(width) }
- else (),
+ else { rvfi_exec->rvfi_mem_rdata() = v[63..0];
+ rvfi_exec->rvfi_mem_rmask() = 0xFF},
MemException(_) => ()
};
}
@@ -138,6 +139,9 @@ function rvfi_write (addr, width, value) = {
if width <= 8 then {
rvfi_exec->rvfi_mem_wdata() = sail_zero_extend(value,64);
rvfi_exec->rvfi_mem_wmask() = rvfi_encode_width_mask(width);
+ } else {
+ rvfi_exec->rvfi_mem_wdata() = value[63..0];
+ rvfi_exec->rvfi_mem_wmask() = 0xFF;
}
}
$else