Remove remaining unsealed checks
This commit is contained in:
@@ -1023,7 +1023,6 @@ function DecodeResult decode(Instruction inst, Bool cap_mode);
|
||||
end
|
||||
f7_cap_CSeal: begin
|
||||
dInst.capChecks.src2_tag = True;
|
||||
dInst.capChecks.src2_unsealed = True;
|
||||
dInst.capChecks.src2_permit_seal = True;
|
||||
dInst.capChecks.src2_addr_valid_type = True;
|
||||
|
||||
@@ -1040,7 +1039,6 @@ function DecodeResult decode(Instruction inst, Bool cap_mode);
|
||||
dInst.capFunc = CapModify (Seal);
|
||||
end
|
||||
f7_cap_CCSeal: begin
|
||||
dInst.capChecks.src2_unsealed = True;
|
||||
dInst.capChecks.src2_addr_valid_type = True;
|
||||
dInst.capChecks.src2_permit_seal = True;
|
||||
dInst.capChecks.ccseal_bypass = True;
|
||||
@@ -1092,7 +1090,6 @@ function DecodeResult decode(Instruction inst, Bool cap_mode);
|
||||
f7_cap_CUnseal: begin
|
||||
dInst.capChecks.src2_tag = True;
|
||||
dInst.capChecks.src1_sealed_with_type = True;
|
||||
dInst.capChecks.src2_unsealed = True;
|
||||
dInst.capChecks.src2_points_to_src1_type = True;
|
||||
dInst.capChecks.src2_permit_unseal = True;
|
||||
|
||||
|
||||
@@ -273,13 +273,13 @@ function CapPipe capModify(CapPipe a, CapPipe b, CapModifyFunc func);
|
||||
tagged SealEntry :
|
||||
setKind(a_mut, SENTRY);
|
||||
tagged Seal :
|
||||
setKind(a_mut, SEALED_WITH_TYPE (truncate(getAddr(b))));
|
||||
clearTagIf(setKind(a_mut, SEALED_WITH_TYPE (truncate(getAddr(b)))), getKind(b) != UNSEALED);
|
||||
tagged CSeal :
|
||||
((validAsType(b, getAddr(b)) && isValidCap(b) && getKind(a) == UNSEALED) ?
|
||||
setKind(a_mut, SEALED_WITH_TYPE (truncate(getAddr(b))))
|
||||
: a);
|
||||
tagged Unseal .src :
|
||||
setKind(((src == Src1) ? a:b), UNSEALED);
|
||||
clearTagIf(setKind(((src == Src1) ? a:b), UNSEALED), (src == Src1) && (getKind(b) != UNSEALED));
|
||||
tagged AndPerm :
|
||||
setPerms(a_mut, pack(getPerms(a)) & truncate(getAddr(b)));
|
||||
tagged SetFlags :
|
||||
|
||||
Reference in New Issue
Block a user