fix(cpu): account for overflow in THUMB alu MUL
This commit is contained in:
parent
045c98de1f
commit
784bc81a4a
|
@ -90,7 +90,8 @@ pub fn format4(comptime op: u4) InstrFn {
|
|||
},
|
||||
0xD => {
|
||||
// MUL
|
||||
const result = cpu.r[rs] * cpu.r[rd];
|
||||
const temp = @as(u64, cpu.r[rs]) * @as(u64, cpu.r[rd]);
|
||||
const result = @truncate(u32, temp);
|
||||
cpu.r[rd] = result;
|
||||
|
||||
cpu.cpsr.n.write(result >> 31 & 1 == 1);
|
||||
|
|
Loading…
Reference in New Issue