summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cheri/cheri_insts.sail4
1 files changed, 1 insertions, 3 deletions
diff --git a/cheri/cheri_insts.sail b/cheri/cheri_insts.sail
index e1c1cc00..b2801bae 100644
--- a/cheri/cheri_insts.sail
+++ b/cheri/cheri_insts.sail
@@ -946,8 +946,6 @@ function clause execute (CLC(cd, cb, rt, offset, linked)) =
raise_c2_exception(CapEx_TagViolation, cb)
else if (cb_val.sealed) then
raise_c2_exception(CapEx_SealViolation, cb)
- else if not (cb_val.permit_load_cap) then
- raise_c2_exception(CapEx_PermitLoadCapViolation, cb)
else
{
cursor := getCapCursor(cb_val);
@@ -972,7 +970,7 @@ function clause execute (CLC(cd, cb, rt, offset, linked)) =
else
(MEMr_tagged(pAddr)))
in
- (CapRegs[cd]) := memBitsToCapBits(tag & not (suppressTag), mem);
+ (CapRegs[cd]) := memBitsToCapBits(tag & (cb_val.permit_load_cap) & not (suppressTag), mem);
}
}
(* END_CLC *)