From 1173cbb2c668d9bd8ba4367e77daeeb391a55817 Mon Sep 17 00:00:00 2001 From: Jessica Clarke Date: Thu, 2 Jul 2020 02:44:09 +0100 Subject: [PATCH] CsrFile.bsv: Actually respect CHERI fault delegation Also remove a dangerous default case item that masked this bug. It's completely unnecessary upstream too and a bad idea. --- src_Core/CPU/CsrFile.bsv | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src_Core/CPU/CsrFile.bsv b/src_Core/CPU/CsrFile.bsv index 609f37a..298e2fa 100644 --- a/src_Core/CPU/CsrFile.bsv +++ b/src_Core/CPU/CsrFile.bsv @@ -1066,8 +1066,8 @@ module mkCsrFile #(Data hartid)(CsrFile); // check if trap is delegated Bool deleg = prv_reg <= prvS && (case(t) matches tagged Exception .e: return medeleg_csr[pack(e)] == 1; + tagged CapException .ce: return medeleg_csr[pack(CHERIFault)] == 1; tagged Interrupt .i: return mideleg_csr[pack(i)] == 1; - default: return False; endcase); // handle the trap if(deleg) begin // handle in S mode