saving current changes

This commit is contained in:
2026-02-17 15:30:40 +00:00
parent 6f114cd188
commit 762b3b4cbb
15 changed files with 6147 additions and 95 deletions

View File

@@ -1003,6 +1003,7 @@ function DecodeResult decode(Instruction inst, Bool cap_mode);
regs.src1 = Valid(tagged Gpr rs1);
regs.src2 = Valid(tagged Gpr rs2);
dInst.capFunc = CapModify (SetBounds (SetBoundsRounding));
// TODOD Add the delta function under this
end
f7_cap_CSetBoundsExact: begin
legalInst = True;

View File

@@ -310,7 +310,7 @@ typedef enum {
} ModifyOffsetFunc deriving(Bits, Eq, FShow);
typedef enum {
SetBoundsExact, SetBoundsRounding, CRRL, CRAM
SetBoundsExact, SetBoundsRounding, CRRL, CRAM, SetDelta
} SetBoundsFunc deriving(Bits, Eq, FShow);
typedef enum {
@@ -336,6 +336,8 @@ typedef enum {
typedef union tagged {
ModifyOffsetFunc ModifyOffset;
SetBoundsFunc SetBounds;
// TODOD: Delta add type here
// SetDeltaFunc SetDelta;
SpecialRWFunc SpecialRW;
AddrSource SetAddr;
void Seal;
@@ -1068,7 +1070,7 @@ function Fmt showInst(Instruction inst);
return ret;
endfunction
function x addPc(x cap, Bit#(12) inc) provisos (Add#(f, 12, c), CHERICap::CHERICap#(x, a, b, c, d, e)) = setAddrUnsafe(cap, getAddr(cap) + signExtend(inc));
function x addPc(x cap, Bit#(12) inc) provisos (Add#(f, 12, c), CHERICap::CHERICap#(x, a, b, c, d, e, f)) = setAddrUnsafe(cap, getAddr(cap) + signExtend(inc));
`ifdef PERFORMANCE_MONITORING
typedef 8 Report_Width;