Mercurial > repos > blastem
diff m68k_core.c @ 1461:aa945f1bdd71
Properly clear trace mode on interrupt or other exception. Fix NBCD with memory destination
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Wed, 06 Sep 2017 23:10:11 -0700 |
parents | 4e5797b3935a |
children | ffe45c5b8390 |
line wrap: on
line diff
--- a/m68k_core.c Wed Sep 06 22:16:02 2017 -0700 +++ b/m68k_core.c Wed Sep 06 23:10:11 2017 -0700 @@ -94,7 +94,9 @@ void m68k_save_result(m68kinst * inst, m68k_options * opts) { if (inst->dst.addr_mode != MODE_REG && inst->dst.addr_mode != MODE_AREG && inst->dst.addr_mode != MODE_UNUSED) { - if (inst->dst.addr_mode == MODE_AREG_PREDEC && inst->src.addr_mode == MODE_AREG_PREDEC && inst->op != M68K_MOVE) { + if (inst->dst.addr_mode == MODE_AREG_PREDEC && + ((inst->src.addr_mode == MODE_AREG_PREDEC && inst->op != M68K_MOVE) || (inst->op == M68K_NBCD)) + ) { areg_to_native(opts, inst->dst.params.regs.pri, opts->gen.scratch2); } m68k_write_size(opts, inst->extra.size, 1);