Signed-off-by: Laurent Vivier <laur...@vivier.eu> --- target-m68k/translate.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+)
diff --git a/target-m68k/translate.c b/target-m68k/translate.c index 029c166..2d92bdd 100644 --- a/target-m68k/translate.c +++ b/target-m68k/translate.c @@ -2758,6 +2758,26 @@ DISAS_INSN(cmpa) gen_update_cc_cmp(s, reg, src, opsize); } +DISAS_INSN(cmpm) +{ + TCGv src; + TCGv dest; + TCGv reg; + int opsize; + + opsize = insn_opsize(insn); + + reg = AREG(insn, 0); + src = gen_load(s, opsize, reg, 1); + tcg_gen_addi_i32(reg, reg, opsize_bytes(opsize)); + + reg = AREG(insn, 9); + dest = gen_load(s, opsize, reg, 1); + tcg_gen_addi_i32(reg, reg, opsize_bytes(opsize)); + + gen_update_cc_cmp(s, dest, src, opsize); +} + DISAS_INSN(eor) { TCGv src; @@ -4876,6 +4896,7 @@ void register_m68k_insns (CPUM68KState *env) INSN(cmpa, b1c0, f1c0, CF_ISA_A); INSN(cmp, b000, f100, M68000); INSN(eor, b100, f100, M68000); + INSN(cmpm, b108, f138, M68000); INSN(cmpa, b0c0, f0c0, M68000); INSN(eor, b180, f1c0, CF_ISA_A); BASE(and, c000, f000); -- 2.5.5