summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Pavone <pavone@retrodev.com>2015-05-11 20:30:13 -0700
committerMichael Pavone <pavone@retrodev.com>2015-05-11 20:30:13 -0700
commit705e3ec64b1c659f400f96536dcb8c5c930e4bda (patch)
treebfae560eb39360e88e4d434389728f785430d415
parentb3e40bd29176e1c4cf53f8542628e48e1eb5dcb0 (diff)
Fixed a missed call to do_sync when updating SR in 68K core
-rw-r--r--m68k_core_x86.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/m68k_core_x86.c b/m68k_core_x86.c
index 167c740..2792bc6 100644
--- a/m68k_core_x86.c
+++ b/m68k_core_x86.c
@@ -2013,7 +2013,12 @@ void translate_m68k_move_ccr_sr(m68k_options *opts, m68kinst *inst, host_ea *src
mov_rdispr(code, src_op->base, src_op->disp, opts->gen.scratch1, SZ_W);
}
}
- call(code, inst->op == M68K_MOVE_SR ? opts->set_sr : opts->set_ccr);
+ if (inst->op == M68K_MOVE_SR) {
+ call(code, opts->set_sr);
+ call(code, opts->do_sync);
+ } else {
+ call(code, opts->set_ccr);
+ }
cycles(&opts->gen, 12);
}
}