OSDN Git Service

target-m68k: fix muluw/mulsw
authorLaurent Vivier <laurent@vivier.eu>
Thu, 24 Nov 2016 08:31:32 +0000 (09:31 +0100)
committerLaurent Vivier <laurent@vivier.eu>
Thu, 24 Nov 2016 15:24:27 +0000 (16:24 +0100)
"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.

Signed-off-by: Laurent Vivier <laurent@vivier.eu>
Reviewed-by: Richard Henderson <rth@twiddle.net>
target-m68k/translate.c

index d2d6816..d6ed883 100644 (file)
@@ -1186,7 +1186,7 @@ DISAS_INSN(mulw)
     SRC_EA(env, src, OS_WORD, sign, NULL);
     tcg_gen_mul_i32(tmp, tmp, src);
     tcg_gen_mov_i32(reg, tmp);
-    gen_logic_cc(s, tmp, OS_WORD);
+    gen_logic_cc(s, tmp, OS_LONG);
 }
 
 DISAS_INSN(divw)