commit 408e06e258422bc402077bff77659bc13a2a2f81 parent 1af2b66ae1b64f177c6e56bf0f59942025d1e7be Author: Bradley Gannon <bradley@bradleygannon.com> Date: Thu, 1 Oct 2026 23:26:24 -0400 Fix a bug where certain jalr instructions did bad arithmetic Diffstat:
| M | src/main/scala/controlUnit.scala | | | 4 | +++- |
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/main/scala/controlUnit.scala b/src/main/scala/controlUnit.scala @@ -243,7 +243,9 @@ class AluDecoder extends Module { } is(AluOp.arithmetic) { when( - io.funct3 === "b000".U && (!io.op.asUInt(5) || (io.op.asUInt(5) && !io.funct7_5)) + io.funct3 === "b000".U && (io.op === Opcode.jalr || !io.op.asUInt(5) || (io.op.asUInt( + 5 + ) && !io.funct7_5)) ) { io.aluControl := AluControl.add }.elsewhen(io.funct3 === "b000".U && io.op.asUInt(5) && io.funct7_5) {