summaryrefslogtreecommitdiffstatshomepage
path: root/trunk/src/emu/cpu/rsp/rspfe.h
diff options
context:
space:
mode:
Diffstat (limited to 'trunk/src/emu/cpu/rsp/rspfe.h')
-rw-r--r--trunk/src/emu/cpu/rsp/rspfe.h58
1 files changed, 58 insertions, 0 deletions
diff --git a/trunk/src/emu/cpu/rsp/rspfe.h b/trunk/src/emu/cpu/rsp/rspfe.h
new file mode 100644
index 00000000000..b032c306b2b
--- /dev/null
+++ b/trunk/src/emu/cpu/rsp/rspfe.h
@@ -0,0 +1,58 @@
+/***************************************************************************
+
+ rspfe.h
+
+ Front-end for RSP recompiler
+
+ Copyright the MESS team
+ Released for general non-commercial use under the MAME license
+ Visit http://mamedev.org for licensing and usage restrictions.
+
+***************************************************************************/
+
+#pragma once
+
+#ifndef __RSPFE_H__
+#define __RSPFE_H__
+
+#include "rsp.h"
+#include "cpu/drcfe.h"
+
+
+//**************************************************************************
+// CONSTANTS
+//**************************************************************************
+
+// register flags 0
+#define REGFLAG_R(n) (((n) == 0) ? 0 : (1 << (n)))
+
+
+
+//**************************************************************************
+// TYPE DEFINITIONS
+//**************************************************************************
+
+class rsp_frontend : public drc_frontend
+{
+public:
+ // construction/destruction
+ rsp_frontend(rsp_state &state, UINT32 window_start, UINT32 window_end, UINT32 max_sequence);
+
+protected:
+ // required overrides
+ virtual bool describe(opcode_desc &desc, const opcode_desc *prev);
+
+private:
+ // internal helpers
+ bool describe_special(UINT32 op, opcode_desc &desc);
+ bool describe_regimm(UINT32 op, opcode_desc &desc);
+ bool describe_cop0(UINT32 op, opcode_desc &desc);
+ bool describe_cop2(UINT32 op, opcode_desc &desc);
+
+ // internal state
+ rsp_state &m_context;
+};
+
+
+
+#endif /* __RSPFE_H__ */