static char bus_error_text[200];
static int bus_error_specials;
+static int bus_error_cycles;
// 1 = first access, 2 = long second access only
static char bus_error_code[1000], bus_error_code2[1000];
} else {
+ if (bus_error_cycles > 0) {
+ if (using_prefetch) {
+ out("%s(%d);\n", do_cycles, bus_error_cycles);
+ } else {
+ out("count_cycles += % d * CYCLE_UNIT / 2;\n", bus_error_cycles);
+ }
+ bus_error_cycles = 0;
+ }
+
if (exception_pc_offset) {
incpc("%d", exception_pc_offset);
}
m68k_pc_total = 0;
branch_inst = 0;
set_fpulimit = 0;
+ bus_error_cycles = 0;
ir2irc = 0;
mmufixupcnt = 0;
break;
case i_TAS:
if (cpu_level == 0) {
+ bus_error_cycles = 2;
genamode(curi, curi->smode, "srcreg", curi->size, "src", 1, 0, GF_LRMW);
genflags(flag_logical, curi->size, "src", "", "");
if (!isreg(curi->smode)) {
addcycles000(2);
}
+ out("uae_u8 old_src = src;\n");
out("src |= 0x80;\n");
if (isreg(curi->smode) || !using_ce) {
genastore_tas("src", curi->smode, "srcreg", curi->size, "src");