diff m68k_core.c @ 981:902c53d9c16f

Half assed, prefetch based open bus value emulation. Gets BlastEm up to 119/122 in VDP FIFO Testing
author Michael Pavone <pavone@retrodev.com>
date Sun, 24 Apr 2016 02:19:48 -0700
parents 771875b5f519
children 751280fb4494
line wrap: on
line diff
--- a/m68k_core.c	Sun Apr 24 01:24:38 2016 -0700
+++ b/m68k_core.c	Sun Apr 24 02:19:48 2016 -0700
@@ -796,6 +796,13 @@
 {
 	check_cycles_int(&opts->gen, inst->address);
 	//log_address(&opts->gen, inst->address, "M68K: %X @ %d\n");
+	if (
+		(inst->src.addr_mode > MODE_AREG && inst->src.addr_mode < MODE_IMMEDIATE) 
+		|| (inst->dst.addr_mode > MODE_AREG && inst->dst.addr_mode < MODE_IMMEDIATE)
+	) {
+		//Not accurate for all cases, but probably good enough for now
+		m68k_set_last_prefetch(opts, inst->address + inst->bytes);
+	}
 	impl_info * info = m68k_impls + inst->op;
 	if (info->itype == RAW_FUNC) {
 		info->impl.raw(opts, inst);