summaryrefslogtreecommitdiff
path: root/m68k_core.h
diff options
context:
space:
mode:
authorMichael Pavone <pavone@retrodev.com>2017-03-25 00:21:32 -0700
committerMichael Pavone <pavone@retrodev.com>2017-03-25 00:21:32 -0700
commit61204637be41f75cfa67997b30f4820871c956b5 (patch)
tree394f1596bad2855775368e2f7b8e83c589a1e474 /m68k_core.h
parentb13c022c4b885f9ac0e649553211e69187d8aed9 (diff)
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
Diffstat (limited to 'm68k_core.h')
-rw-r--r--m68k_core.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/m68k_core.h b/m68k_core.h
index 33daa70..786447f 100644
--- a/m68k_core.h
+++ b/m68k_core.h
@@ -24,6 +24,14 @@ struct m68kinst;
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 @@ typedef struct {
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 {