From 8d841ead50f9a26c8da718d9a511bb122b456940 Mon Sep 17 00:00:00 2001 From: Rekai Musuka Date: Fri, 21 Oct 2022 05:12:10 -0300 Subject: [PATCH] fix(cpu): account for overflow in THUMB alu MUL --- src/cpu/thumb/format4.zig | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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);