From 27aa16a7bf9f64c97cd39d57f60cdfc8deb72a0b Mon Sep 17 00:00:00 2001 From: Akilan Date: Wed, 24 Dec 2025 10:48:04 +0000 Subject: [PATCH] added todo --- builds/RV64ACDFIMSUxCHERI_Toooba_bluesim/analyse.txt | 10 ++++++++++ builds/RV64ACDFIMSUxCHERI_Toooba_bluesim/test.txt | 3 +++ src_Core/RISCY_OOO/procs/lib/Decode.bsv | 2 ++ 3 files changed, 15 insertions(+) create mode 100644 builds/RV64ACDFIMSUxCHERI_Toooba_bluesim/analyse.txt diff --git a/builds/RV64ACDFIMSUxCHERI_Toooba_bluesim/analyse.txt b/builds/RV64ACDFIMSUxCHERI_Toooba_bluesim/analyse.txt new file mode 100644 index 0000000..1508523 --- /dev/null +++ b/builds/RV64ACDFIMSUxCHERI_Toooba_bluesim/analyse.txt @@ -0,0 +1,10 @@ + 800028f8: 00c6d693 srli a3,a3,0xc + 800028fc: 00c75713 srli a4,a4,0xc + 80002908: 00a69693 slli a3,a3,0xa + 8000290c: 00a71713 slli a4,a4,0x4 + + 80002910: 0016e693 ori a3,a3,1 + 80002914: 00176713 ori a4,a4,1 + + 80002920: 6ed8b223 sd a3,1764(a7) + 8000292c: 6ce6b823 sd a4,1744(a3) diff --git a/builds/RV64ACDFIMSUxCHERI_Toooba_bluesim/test.txt b/builds/RV64ACDFIMSUxCHERI_Toooba_bluesim/test.txt index d9982cb..88b81f9 100644 --- a/builds/RV64ACDFIMSUxCHERI_Toooba_bluesim/test.txt +++ b/builds/RV64ACDFIMSUxCHERI_Toooba_bluesim/test.txt @@ -3488,6 +3488,7 @@ instret:1326 PC:0x1ffff000000000000ffffffffffe02404 instr:0x0187b303 iType:L 48880 L1 top.soc_top.corew_proc.core_0 pipelineResp: pRq: 'h0 ; PRqMsg { addr: 'h0000000080007010, toState: S, child: } 48880 L1 top.soc_top.corew_proc.core_0 pipelineResp: pRq: valid process 48890 L1 top.soc_top.corew_proc.core_0 sendRsToP: tagged PRq 'h0 ; PRqMsg { addr: 'h0000000080007010, toState: S, child: } ; CRsMsg { addr: 'h0000000080007010, toState: S, data: tagged Valid CLine { tag: , data: > }, child: } +Add entry rule called instret:1327 PC:0x1ffff000000000000ffffffffffe02408 instr:0x01e73023 iType:St [doCommitNormalInst [0]] 4900 49010 L1 top.soc_top.corew_proc.core_0 cRqTransfer_new: 'h4 ; ProcRq { id: 'h00, addr: 'h0000000080050000, toState: M, op: St, byteEn: , data: TaggedData { tag: False, data: }, amoInst: AmoInst { func: None, width: Word, aq: True, rl: False }, loadTags: False, pcHash: 'hdbe8 } instret:1328 PC:0x1ffff000000000000ffffffffffe0240c instr:0x01d73423 iType:St [doCommitNormalInst [0]] 4901 @@ -17397,6 +17398,7 @@ instret:2787 PC:0x1ffff000000000000ffffffffffe000c4 instr:0x10200073 iType:S 88540 L1 top.soc_top.corew_proc.core_0 pipelineResp: pRq: 'h0 ; PRqMsg { addr: 'h0000000080007010, toState: S, child: } 88540 L1 top.soc_top.corew_proc.core_0 pipelineResp: pRq: valid process 88550 L1 top.soc_top.corew_proc.core_0 sendRsToP: tagged PRq 'h0 ; PRqMsg { addr: 'h0000000080007010, toState: S, child: } ; CRsMsg { addr: 'h0000000080007010, toState: S, data: tagged Valid CLine { tag: , data: > }, child: } +Add entry rule called instret:2788 PC:0x1ffff0000000000000000000000002adc instr:0x00000000 iType:Unsupported [doCommitTrap] 8870 instret:2789 PC:0x1ffff000000000000ffffffffffe000c8 instr:0x14011173 iType:Csr [doCommitSystemInst] 8885 procReq: vm_info: VMInfo { prv: 'h1, asid: 'h0, sv39: True, exeReadable: False, userAccessibleByS: False, basePPN: 'h00000080004, globalCapLoadGenU: 'h0, globalCapLoadGenS: 'h0 } en : TlbEntry { vpn: 'h7fffe00, ppn: 'h00000080000, pteType: PTEType { dirty: True, accessed: True, global: False, user: False, executable: True, writable: True, readable: True }, pteUpperType: PTEUpperType { cap_writable: False, cap_readable: False, cap_dirty: False, cap_read_mod: False, cap_read_gen: False }, level: 'h1, asid: 'h0 } r : TlbReq { addr: 'hffffffffffe096d8, write: True, capStore: False, potentialCapLoad: False } @@ -18323,6 +18325,7 @@ instret:2922 PC:0x1ffff000000000000ffffffffffe000b8 instr:0x0f053f03 iType:L instret:2923 PC:0x1ffff000000000000ffffffffffe000bc instr:0x0f853f83 iType:Ld [doCommitNormalInst [0]] 9513 instret:2924 PC:0x1ffff000000000000ffffffffffe000c0 instr:0x05053503 iType:Ld [doCommitNormalInst [0]] 9514 instret:2925 PC:0x1ffff000000000000ffffffffffe000c4 instr:0x10200073 iType:Sret [doCommitSystemInst] 9516 +Add entry rule called 95450 L1 top.soc_top.corew_proc.core_0 pRqTransfer: 'h2 ; PRqMsg { addr: 'h0000000080050adc, toState: S, child: } 95460 L1 top.soc_top.corew_proc.core_0 pipelineResp: pRq: 'h2 ; PRqMsg { addr: 'h0000000080050adc, toState: S, child: } 95460 L1 top.soc_top.corew_proc.core_0 pipelineResp: pRq: valid process diff --git a/src_Core/RISCY_OOO/procs/lib/Decode.bsv b/src_Core/RISCY_OOO/procs/lib/Decode.bsv index 0fef1b8..0a194ac 100644 --- a/src_Core/RISCY_OOO/procs/lib/Decode.bsv +++ b/src_Core/RISCY_OOO/procs/lib/Decode.bsv @@ -54,6 +54,7 @@ function Maybe#(MemInst) decodeMemInst(Instruction inst, Bool cap_mode, RiscVISA let funct5 = inst[31:27]; let funct3 = inst[14:12]; + // mem_func + amo_func MemFunc mem_func = Ld; AmoFunc amo_func = None; @@ -262,6 +263,7 @@ function Maybe#(MemInst) decodeExplicitBoundsMemInst(Instruction inst); endfunction function CapChecks memCapChecks(Bool cap_mode); + // TODO (Akilan): To extract offset for PPN CapChecks capChecks = unpack(0); capChecks.check_enable = True; capChecks.check_low_src = Vaddr;