aboutsummaryrefslogtreecommitdiff
path: root/isa
diff options
context:
space:
mode:
authorAndrew Waterman <aswaterman@gmail.com>2017-11-20 11:59:28 -0800
committerGitHub <noreply@github.com>2017-11-20 11:59:28 -0800
commitea53b10a55e523672340af4bf5ae710e3e314a32 (patch)
treeb5bcb52ce5fb6d7d55415f000b21fc782c4c1f7f /isa
parent669ac25d0db3888f2c41e3f50344d728be29a701 (diff)
downloadriscv-tests-ea53b10a55e523672340af4bf5ae710e3e314a32.zip
riscv-tests-ea53b10a55e523672340af4bf5ae710e3e314a32.tar.gz
riscv-tests-ea53b10a55e523672340af4bf5ae710e3e314a32.tar.bz2
Check mtval in rv64mi-p-illegal (#104)
Closes #103
Diffstat (limited to 'isa')
-rw-r--r--isa/rv64mi/illegal.S11
1 files changed, 11 insertions, 0 deletions
diff --git a/isa/rv64mi/illegal.S b/isa/rv64mi/illegal.S
index 3bb7961..d825c44 100644
--- a/isa/rv64mi/illegal.S
+++ b/isa/rv64mi/illegal.S
@@ -130,6 +130,17 @@ synchronous_exception:
csrr t0, mcause
bne t0, t1, fail
csrr t0, mepc
+
+ # Make sure mtval contains either 0 or the instruction word.
+ csrr t2, mbadaddr
+ beqz t2, 1f
+ lhu t3, 0(t0)
+ lhu t4, 2(t0)
+ slli t4, t4, 16
+ or t3, t3, t4
+ bne t2, t3, fail
+1:
+
la t1, bad2
beq t0, t1, 2f
la t1, bad3