From: Toni Wilen Date: Sun, 16 Feb 2020 18:12:24 +0000 (+0200) Subject: Fix DBcc in non-ce mode. MOVES non-MMU wrong output function fix. X-Git-Tag: 4400~120 X-Git-Url: https://git.unchartedbackwaters.co.uk/w/?a=commitdiff_plain;h=e903eef0ac807dea9f707b72707d36228766068a;p=francis%2Fwinuae.git Fix DBcc in non-ce mode. MOVES non-MMU wrong output function fix. --- diff --git a/gencpu.cpp b/gencpu.cpp index f01125bd..49789e33 100644 --- a/gencpu.cpp +++ b/gencpu.cpp @@ -1179,6 +1179,7 @@ static void fill_prefetch_full_000_special(const char *format, ...) va_end(parms); out(outbuf); } + insn_n_cycles += 2 * 4; return; } @@ -3695,7 +3696,7 @@ static void genastore_2 (const char *from, amodes mode, const char *reg, wordsiz switch (size) { case sz_byte: set_last_access(); - out("x_put_byte(%sa, %s);\n", to, from); + out("%s(%sa, %s);\n", dstbx, to, from); count_writew++; check_bus_error(to, 0, 1, 0, from, 1); break; @@ -3703,7 +3704,7 @@ static void genastore_2 (const char *from, amodes mode, const char *reg, wordsiz if (cpu_level < 2 && (mode == PC16 || mode == PC8r)) term(); set_last_access(); - out("x_put_word(%sa, %s);\n", to, from); + out("%s(%sa, %s);\n", dstwx, to, from); count_writew++; check_bus_error(to, 0, 1, 1, from, 1); break; @@ -7083,7 +7084,6 @@ bccl_not68020: } out("uaecptr oldpc = %s;\n", getpc); addcycles000(2); - addcycles000_nonce(2); if (using_exception_3 && cpu_level >= 4) { out("if (offs & 1) {\n"); out("exception3_read_prefetch(opcode, oldpc + (uae_s32)offs + 2);\n"); @@ -7194,7 +7194,7 @@ bccl_not68020: } fill_prefetch_full_020(); - returncycles (10); + returncycles(10); out("}\n"); if (cpu_level == 1 && using_prefetch) { out("if (!src) {\n"); @@ -7203,7 +7203,6 @@ bccl_not68020: out("}\n"); } add_head_cycs (10); - addcycles000_nonce(2 + 2); if (cpu_level == 0 || (cpu_level == 1 && !using_prefetch)) { out("} else {\n"); addcycles000_onlyce(2); @@ -7211,11 +7210,12 @@ bccl_not68020: } out("}\n"); pop_ins_cnt(); + insn_n_cycles += 2; + count_cycles += 2; setpc ("oldpc + %d", m68k_pc_offset); clear_m68k_offset(); get_prefetch_020_continue(); fill_prefetch_full_000_special("if (!cctrue(%d)) {\nm68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src - 1)) & 0xffff);\n}\n", curi->cc); - insn_n_cycles = 8; branch_inst = 1; if (!next_level_040_to_030()) next_level_020_to_010(); @@ -8007,7 +8007,6 @@ bccl_not68020: addcycles000(4); out("if (extra & 0x800) {\n"); { - int srcdone = 0; int old_m68k_pc_offset = m68k_pc_offset; int old_m68k_pc_total = m68k_pc_total; push_ins_cnt();