diff options
author | Michael Pavone <pavone@retrodev.com> | 2017-03-25 00:21:32 -0700 |
---|---|---|
committer | Michael Pavone <pavone@retrodev.com> | 2017-03-25 00:21:32 -0700 |
commit | 61204637be41f75cfa67997b30f4820871c956b5 (patch) | |
tree | 394f1596bad2855775368e2f7b8e83c589a1e474 /m68k_core.h | |
parent | b13c022c4b885f9ac0e649553211e69187d8aed9 (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.h | 12 |
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 { |