From d50e7e4686c672e80aab50532fa9c25c9bbf226b Mon Sep 17 00:00:00 2001 From: StapleButter Date: Fri, 29 Dec 2017 03:17:32 +0100 Subject: fix SMULWx/SMLAWx. fixes #78, finally --- src/ARMInterpreter_ALU.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/ARMInterpreter_ALU.cpp b/src/ARMInterpreter_ALU.cpp index 7ff8255..4f76b8b 100644 --- a/src/ARMInterpreter_ALU.cpp +++ b/src/ARMInterpreter_ALU.cpp @@ -895,7 +895,7 @@ void A_SMLAWy(ARM* cpu) if (cpu->CurInstr & (1<<6)) rs >>= 16; else rs &= 0xFFFF; - u32 res_mul = ((s32)rm * (s16)rs) >> 16; // CHECKME + u32 res_mul = ((s64)(s32)rm * (s16)rs) >> 16; u32 res = res_mul + rn; cpu->R[(cpu->CurInstr >> 16) & 0xF] = res; @@ -930,7 +930,7 @@ void A_SMULWy(ARM* cpu) if (cpu->CurInstr & (1<<6)) rs >>= 16; else rs &= 0xFFFF; - u32 res = ((s32)rm * (s16)rs) >> 16; // CHECKME + u32 res = ((s64)(s32)rm * (s16)rs) >> 16; cpu->R[(cpu->CurInstr >> 16) & 0xF] = res; } -- cgit v1.2.3