fix jalr instruction to take arguments in the form of rd, rs, imm

This commit is contained in:
Anton Lydike 2023-05-22 22:52:17 +01:00
parent 25d059da09
commit 7a4972d48f

View File

@ -214,9 +214,10 @@ class RV32I(InstructionSet):
def instruction_jalr(self, ins: "Instruction"):
ASSERT_LEN(ins.args, 2)
reg = ins.get_reg(0)
addr = ins.get_imm(1)
base = ins.get_reg(1)
addr = ins.get_imm(2)
self.regs.set(reg, Int32(self.pc))
self.pc = addr
self.pc = self.regs.get(base).unsigned_value + addr
def instruction_ret(self, ins: "Instruction"):
ASSERT_LEN(ins.args, 0)