diff --git a/src/cpu/thumb/format4.zig b/src/cpu/thumb/format4.zig index 80af863..ee8964a 100644 --- a/src/cpu/thumb/format4.zig +++ b/src/cpu/thumb/format4.zig @@ -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);