From c466d7d1758f6fa50bc56f805713253874e3a18c Mon Sep 17 00:00:00 2001 From: vhaudiquet Date: Fri, 6 Oct 2023 12:13:08 +0200 Subject: [PATCH] Fix J decode wrong immediate TODO recheck maybe --- src/cpu/rv32cpu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cpu/rv32cpu.c b/src/cpu/rv32cpu.c index 934fcb6..37af05a 100644 --- a/src/cpu/rv32cpu.c +++ b/src/cpu/rv32cpu.c @@ -68,7 +68,7 @@ static void cpu_decode(raw_instruction_t raw_instruction, instruction_t* output) // Then following 10 bits (30-21) are immediate bits 10-1 output->immediate |= (raw_instruction.data & 0x7FE00000) >> 20; // Following bit (20) is immediate bit 11 - output->immediate |= (raw_instruction.data & 0x200000) >> 10; + output->immediate |= (raw_instruction.data & 0x200000) >> 9; // Last bits (19-12) are immediate bits 19-12 output->immediate |= (raw_instruction.data & 0xFF000); break;