diff m68k_core.h @ 1298:d5a47597b61f

Prevent blowing past our native translated instruction size of 255 bytes when translating movem with a large register list. Fixes bug in which Fantastic Dizzy was completely broken on 32-bit builds
author Michael Pavone <pavone@retrodev.com>
date Sat, 25 Mar 2017 00:21:32 -0700
parents 2e6dcb5c11a2
children 208803173ebc
line wrap: on
line diff
--- a/m68k_core.h	Wed Mar 22 22:16:39 2017 -0700
+++ b/m68k_core.h	Sat Mar 25 00:21:32 2017 -0700
@@ -24,6 +24,14 @@
 typedef void (*start_fun)(uint8_t * addr, void * context);
 
 typedef struct {
+	code_ptr impl;
+	uint16_t reglist;
+	uint8_t  reg_to_mem;
+	uint8_t  size;
+	int8_t   dir;
+} movem_fun;
+
+typedef struct {
 	cpu_options     gen;
 
 	int8_t          dregs[8];
@@ -46,6 +54,10 @@
 	code_ptr		get_sr;
 	code_ptr		set_sr;
 	code_ptr		set_ccr;
+	code_info       extra_code;
+	movem_fun       *big_movem;
+	uint32_t        num_movem;
+	uint32_t        movem_storage;
 } m68k_options;
 
 typedef struct m68k_context {