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 => {
|
0xD => {
|
||||||
// MUL
|
// 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.r[rd] = result;
|
||||||
|
|
||||||
cpu.cpsr.n.write(result >> 31 & 1 == 1);
|
cpu.cpsr.n.write(result >> 31 & 1 == 1);
|
||||||
|
|
Loading…
Reference in New Issue