summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/cpu/rsp/rspfe.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/emu/cpu/rsp/rspfe.h')
-rw-r--r--src/emu/cpu/rsp/rspfe.h40
1 files changed, 32 insertions, 8 deletions
diff --git a/src/emu/cpu/rsp/rspfe.h b/src/emu/cpu/rsp/rspfe.h
index 176351b8b12..b032c306b2b 100644
--- a/src/emu/cpu/rsp/rspfe.h
+++ b/src/emu/cpu/rsp/rspfe.h
@@ -15,20 +15,44 @@
#ifndef __RSPFE_H__
#define __RSPFE_H__
+#include "rsp.h"
#include "cpu/drcfe.h"
-/***************************************************************************
- CONSTANTS
-***************************************************************************/
+//**************************************************************************
+// CONSTANTS
+//**************************************************************************
-/* register flags 0 */
+// register flags 0
#define REGFLAG_R(n) (((n) == 0) ? 0 : (1 << (n)))
-/***************************************************************************
- FUNCTION PROTOTYPES
-***************************************************************************/
-int rspfe_describe(void *param, opcode_desc *desc, const opcode_desc *prev);
+
+//**************************************************************************
+// 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__ */