From 528b519ce98c21049705526442cbde1672495b49 Mon Sep 17 00:00:00 2001 From: taitep Date: Fri, 26 Dec 2025 14:20:27 +0100 Subject: (BIG CHANGE) memory handling has changed, MMIO is now a 2 level page table, misaligned access supported, addresses not internally split to page and offset immediately, all load/store instructions implemented. Might still have bugs --- src/instructions.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/instructions.rs') diff --git a/src/instructions.rs b/src/instructions.rs index 482ea5d..5e3f39c 100644 --- a/src/instructions.rs +++ b/src/instructions.rs @@ -58,7 +58,9 @@ pub(crate) fn find_and_exec(instr: Instruction, core: &mut Core) -> Result<(), E 0b000 => rvi::lb(core, instr), 0b100 => rvi::lbu(core, instr), 0b001 => rvi::lh(core, instr), + 0b101 => rvi::lhu(core, instr), 0b010 => rvi::lw(core, instr), + 0b110 => rvi::lwu(core, instr), 0b011 => rvi::ld(core, instr), _ => Err(IllegalInstruction), }, @@ -74,7 +76,6 @@ pub(crate) fn find_and_exec(instr: Instruction, core: &mut Core) -> Result<(), E 0b01101 => rvi::lui(core, instr), 0b00101 => rvi::auipc(core, instr), 0b11011 => rvi::jal(core, instr), - // 0b11001 => (instr.funct3() == 0).then(|| rvi::jalr(core, instr)), 0b11001 => { if instr.funct3() == 0 { rvi::jalr(core, instr) -- cgit v1.2.3