This commit is contained in:
@@ -1451,10 +1451,18 @@ instance CHERICap #(CapPipe, OTypeW, FlagsW, CapAddrW, CapW, TSub#(MW, 3), Delta
|
||||
return CapPipe { capFat: res, tempFields: getTempFields(res) };
|
||||
endfunction
|
||||
|
||||
typedef struct {
|
||||
Bit#(39) trueAddr;
|
||||
Bit#(25) delta;
|
||||
} MyAddr deriving (Bits);
|
||||
|
||||
//Functions that require TempFields
|
||||
|
||||
function setAddr (cap, address);
|
||||
let result = setAddress(cap.capFat, address, cap.tempFields);
|
||||
// todo
|
||||
MyAddr myAddr = unpack(pack(addr));
|
||||
myAddr.delta = 42;
|
||||
let result = setAddress(cap.capFat, pack(myAddr), cap.tempFields);
|
||||
cap.capFat = result.d;
|
||||
cap.tempFields = getTempFields(cap.capFat);
|
||||
return Exact { exact: result.v, value: cap };
|
||||
|
||||
Reference in New Issue
Block a user