Skip to content

Commit 843d10e

Browse files
committed
Fix ARM bug
Calculate shift before incrementing PC
1 parent 3080202 commit 843d10e

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

core/src/cpu/arm.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -79,9 +79,10 @@ impl CPU {
7979
let shift_by_reg = (instr >> 4) & 0x1 != 0;
8080
let shift = if shift_by_reg {
8181
assert_eq!((instr >> 7) & 0x1, 0);
82+
let shift = self.regs.get_reg_i((instr >> 8) & 0xF) & 0xFF;
8283
self.regs.pc = self.regs.pc.wrapping_add(4); // Temp inc
8384
temp_inc_pc = true;
84-
self.regs.get_reg_i((instr >> 8) & 0xF) & 0xFF
85+
shift
8586
} else {
8687
(instr >> 7) & 0x1F
8788
};

0 commit comments

Comments
 (0)