From 8fbf0377f917ace190b3f92a730d4edd251dfb4c Mon Sep 17 00:00:00 2001 From: Peter Rugg Date: Tue, 31 Mar 2020 17:51:36 +0100 Subject: [PATCH] Fix swapped derivability checks --- CHERICC_Fat.bsv | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CHERICC_Fat.bsv b/CHERICC_Fat.bsv index c940897..b38edad 100644 --- a/CHERICC_Fat.bsv +++ b/CHERICC_Fat.bsv @@ -1078,8 +1078,8 @@ instance CHERICap #(CapReg, OTypeW, FlagsW, CapAddressW, CapW, TSub#(MW, 3)); function Bool isDerivable (CapReg cap); return cap.bounds.exp <= resetExp - && !(cap.bounds.exp == resetExp && ((truncateLSB(cap.bounds.topBits) != 1'b0) || (cap.bounds.baseBits[valueOf(TSub#(MW,1))] != 1'b0))) - && !(cap.bounds.exp == resetExp-1 && (cap.bounds.baseBits[valueOf(TSub#(MW,1)):valueOf(TSub#(MW,2))] != 2'b0)) + && !(cap.bounds.exp == resetExp && ((truncateLSB(cap.bounds.topBits) != 1'b0) || (truncateLSB(cap.bounds.baseBits) != 2'b0))) + && !(cap.bounds.exp == resetExp-1 && (truncateLSB(cap.bounds.baseBits) != 2'b0)) && (cap.reserved == 0); endfunction