"The size of the operation can be specified as word or long. Word length source operands are sign-extended to 32 bits for comparison."
So comparison is always done using OS_LONG. Signed-off-by: Laurent Vivier <laur...@vivier.eu> Reviewed-by: Richard Henderson <r...@twiddle.net> --- target-m68k/translate.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target-m68k/translate.c b/target-m68k/translate.c index 8e522db..d2d6816 100644 --- a/target-m68k/translate.c +++ b/target-m68k/translate.c @@ -2170,7 +2170,7 @@ DISAS_INSN(cmpa) } SRC_EA(env, src, opsize, 1, NULL); reg = AREG(insn, 9); - gen_update_cc_cmp(s, reg, src, opsize); + gen_update_cc_cmp(s, reg, src, OS_LONG); } DISAS_INSN(eor) -- 2.7.4