summaryrefslogtreecommitdiff
path: root/m68k_to_x86.c
diff options
context:
space:
mode:
Diffstat (limited to 'm68k_to_x86.c')
-rw-r--r--m68k_to_x86.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/m68k_to_x86.c b/m68k_to_x86.c
index 263ef43..ab87751 100644
--- a/m68k_to_x86.c
+++ b/m68k_to_x86.c
@@ -1164,13 +1164,6 @@ uint8_t * translate_m68k_movem(uint8_t * dst, m68kinst * inst, x86_68k_options *
//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 @@ uint8_t * translate_m68k_movem(uint8_t * dst, m68kinst * inst, x86_68k_options *
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)) {