static int using_tracer;
static int using_waitstates;
static int using_simple_cycles;
-static int cpu_level;
+static int cpu_level, cpu_generic;
static int count_read, count_write, count_cycles, count_ncycles;
static int count_cycles_ce020;
static int count_read_ea, count_write_ea, count_cycles_ea;
// do not unnecessarily create useless mmuop030
// functions when CPU is not 68030
- if (curi->mnemo == i_MMUOP030 && cpu_level != 3) {
+ if (curi->mnemo == i_MMUOP030 && cpu_level != 3 && !cpu_generic) {
printf("\top_illg (opcode);\n");
did_prefetch = -1;
goto end;
mmu_postfix = "";
using_simple_cycles = 0;
using_indirect = 0;
+ cpu_generic = false;
if (id == 11 || id == 12) { // 11 = 68010 prefetch, 12 = 68000 prefetch
cpu_level = id == 11 ? 1 : 0;
opcode_next_clev[rp] = cpu_level;
} else if (id < 6) {
cpu_level = 5 - (id - 0); // "generic"
+ cpu_generic = true;
} else if (id >= 40 && id < 46) {
cpu_level = 5 - (id - 40); // "generic" + direct
+ cpu_generic = true;
if (id == 40) {
read_counts();
for (rp = 0; rp < nr_cpuop_funcs; rp++)
using_indirect = -1;
} else if (id >= 50 && id < 56) {
cpu_level = 5 - (id - 50); // "generic" + indirect
+ cpu_generic = true;
if (id == 50) {
read_counts();
for (rp = 0; rp < nr_cpuop_funcs; rp++)