From ea53b10a55e523672340af4bf5ae710e3e314a32 Mon Sep 17 00:00:00 2001 From: Andrew Waterman Date: Mon, 20 Nov 2017 11:59:28 -0800 Subject: [PATCH] Check mtval in rv64mi-p-illegal (#104) Closes #103 --- isa/rv64mi/illegal.S | 11 +++++++++++ 1 file changed, 11 insertions(+) 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 -- 2.30.2