pass through pointer works

This commit is contained in:
2026-03-12 18:11:55 +00:00
parent df2342139f
commit 6fa2e4a36e
5 changed files with 64 additions and 2497 deletions

View File

@@ -11,7 +11,8 @@ _start:
# bound it to 8 bytes (size of dword)
li t2, 8
csetbounds csp, csp, t2
cincoffsetimm csp, csp, 4
# li t5, 4
cincoffsetimm csp, csp, 10
# seal the bounded capability
# cspecialr ct1, 4

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@@ -626,6 +626,9 @@ module mkMemExePipeline#(MemExeInput inIfc)(MemExePipeline);
// Test delta value read from the pointer
Bit#(25) delta = decodeDelta(x.vaddr);
$display("Decoded delta = %0d", delta);
x.vaddr = encodeDelta(x.vaddr, 0);
// x.vaddr = (x.vaddr >> 25) << 25;
// x.vaddr = (x.vaddr >> 25) << 25;
// go to next stage by sending to TLB
dTlb.procReq(DTlbReq {

View File

@@ -244,7 +244,7 @@ function CapPipe capModify(CapPipe a, CapPipe b, CapModifyFunc func);
// TODO: Delta handler function
CapPipe res = (case(func) matches
tagged ModifyOffset .offsetOp :
// modifyOffset(a_mut, getAddr(b), offsetOp == IncOffset).value;
//modifyOffset(a_mut, getAddr(b), offsetOp == IncOffset).value;
// To test this
encodeDelta(a_mut, getAddr(b));
tagged SetBounds .boundsOp :