From 7055c3818332c4f54f5f5ea4876a738dda09683f Mon Sep 17 00:00:00 2001 From: Laurent Vivier Date: Thu, 1 Mar 2018 08:59:40 -0500 Subject: [PATCH] target-m68k: fix muluw/mulsw "The multiplier and multiplicand are both word operands, and the result is a long-word operand." So compute flags on a long-word result, not on a word result. Backports commit 4a18cd44f3c905d443c26e26bb9b09932606d1a3 from qemu --- qemu/target-m68k/translate.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qemu/target-m68k/translate.c b/qemu/target-m68k/translate.c index 889a1940..384e6e06 100644 --- a/qemu/target-m68k/translate.c +++ b/qemu/target-m68k/translate.c @@ -1197,7 +1197,7 @@ DISAS_INSN(mulw) SRC_EA(env, src, OS_WORD, sign, NULL); tcg_gen_mul_i32(tcg_ctx, tmp, tmp, src); tcg_gen_mov_i32(tcg_ctx, reg, tmp); - gen_logic_cc(s, tmp, OS_WORD); + gen_logic_cc(s, tmp, OS_LONG); } DISAS_INSN(divw)