(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
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user