diff options
Diffstat (limited to 'src/devices/cpu/dsp16/dsp16rc.h')
-rw-r--r-- | src/devices/cpu/dsp16/dsp16rc.h | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/src/devices/cpu/dsp16/dsp16rc.h b/src/devices/cpu/dsp16/dsp16rc.h new file mode 100644 index 00000000000..d6ce9a77e4f --- /dev/null +++ b/src/devices/cpu/dsp16/dsp16rc.h @@ -0,0 +1,51 @@ +// license:BSD-3-Clause +// copyright-holders:Vas Crabb +/*************************************************************************** + + WE|AT&T DSP16 series recompiler + +***************************************************************************/ +#ifndef MAME_CPU_DSP16_DSP16RC_H +#define MAME_CPU_DSP16_DSP16RC_H + +#pragma once + +#include "dsp16.h" +#include "dsp16fe.h" + +#include "cpu/drcuml.h" + + +class dsp16_device_base::recompiler +{ +public: + // construction/destruction + recompiler(dsp16_device_base &host, u32 flags); + ~recompiler(); + +private: + // compilation boundaries + enum : u32 + { + COMPILE_BACKWARDS_BYTES = 64, + COMPILE_FORWARDS_BYTES = 256, + COMPILE_MAX_INSTRUCTIONS = (COMPILE_BACKWARDS_BYTES / 2) + (COMPILE_FORWARDS_BYTES / 2), + COMPILE_MAX_SEQUENCE = 64 + }; + + enum : int + { + EXEC_OUT_OF_CYCLES, + EXEC_MISSING_CODE, + EXEC_UNMAPPED_CODE, + EXEC_RESET_CACHE + }; + + // host CPU device, frontend to describe instructions, and UML engine + dsp16_device_base &m_host; + core_state &m_core; + frontend m_frontend; + drcuml_state m_uml; +}; + +#endif // MAME_CPU_DSP16_DSP16RC_H |