diff options
author | Peter Rugg <pdr32@cam.ac.uk> | 2020-01-20 13:58:37 +0000 |
---|---|---|
committer | Peter Rugg <pdr32@cam.ac.uk> | 2020-01-20 14:00:06 +0000 |
commit | 55a0b2529a2995b5cc9240fa9ae1a0c9b3cdadf5 (patch) | |
tree | 4c28898be4022de0a49443d99b7f94d16fc1d671 | |
parent | 1356977d7866d3ff1b4d7de6b22700aa659cae43 (diff) | |
download | sail-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.sail | 6 |
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 |