Mercurial > repos > blastem
changeset 210:4beaad3a9a50
Fix movem reg to mem for certain addressing modes
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Sun, 27 Jan 2013 13:07:26 -0800 |
parents | 922b59c09259 |
children | 464513050c85 |
files | m68k_to_x86.c |
diffstat | 1 files changed, 7 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/m68k_to_x86.c Sat Jan 26 02:47:26 2013 -0800 +++ b/m68k_to_x86.c Sun Jan 27 13:07:26 2013 -0800 @@ -1164,13 +1164,6 @@ //reg to mem early_cycles = 8; int8_t dir; - if (inst->dst.addr_mode == MODE_AREG_PREDEC) { - reg = 15; - dir = -1; - } else { - reg = 0; - dir = 1; - } switch (inst->dst.addr_mode) { case MODE_AREG_INDIRECT: @@ -1286,6 +1279,13 @@ printf("%X: %s\naddress mode %d not implemented (movem dst)\n", inst->address, disasm_buf, inst->dst.addr_mode); exit(1); } + if (inst->dst.addr_mode == MODE_AREG_PREDEC) { + reg = 15; + dir = -1; + } else { + reg = 0; + dir = 1; + } dst = cycles(dst, early_cycles); for(bit=0; reg < 16 && reg >= 0; reg += dir, bit++) { if (inst->src.params.immed & (1 << bit)) {