summaryrefslogtreecommitdiff
path: root/m68k_core_x86.c
diff options
context:
space:
mode:
authorMichael Pavone <pavone@retrodev.com>2017-05-26 19:18:19 -0700
committerMichael Pavone <pavone@retrodev.com>2017-05-26 19:18:19 -0700
commitf9883e421104b9071ee0aa2dc2fa97618a2d032e (patch)
treeb4d996aa2b69de841b0a6b51a8aa5ef3666e8b1a /m68k_core_x86.c
parent96ccd78f03449abf5ae4a993ed47628d240ab496 (diff)
Avoid splitting m68k_check_cycles_int_latch code across memory chunks since it expects a byte-sized jump offset. Avoid an unnecessary m68k_check_cycles_int_latch for register to register moves
Diffstat (limited to 'm68k_core_x86.c')
-rw-r--r--m68k_core_x86.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/m68k_core_x86.c b/m68k_core_x86.c
index f8c23ab..3137bd1 100644
--- a/m68k_core_x86.c
+++ b/m68k_core_x86.c
@@ -353,6 +353,7 @@ void calc_areg_index_disp8(m68k_options *opts, m68k_op_info *op, uint8_t native_
void m68k_check_cycles_int_latch(m68k_options *opts)
{
code_info *code = &opts->gen.code;
+ check_alloc_code(code, 3*MAX_INST_LEN);
uint8_t cc;
if (opts->gen.limit < 0) {
cmp_ir(code, 1, opts->gen.cycles, SZ_D);
@@ -728,7 +729,7 @@ void translate_m68k_move(m68k_options * opts, m68kinst * inst)
inc_amount = inst->extra.size == OPSIZE_WORD ? 2 : (inst->extra.size == OPSIZE_LONG ? 4 : (inst->dst.params.regs.pri == 7 ? 2 : 1));
addi_areg(opts, inc_amount, inst->dst.params.regs.pri);
}
- } else {
+ } else if (needs_int_latch) {
m68k_check_cycles_int_latch(opts);
}