summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/dsp16/dsp16rc.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/cpu/dsp16/dsp16rc.h')
-rw-r--r--src/devices/cpu/dsp16/dsp16rc.h51
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