summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/rsp/rspcp2d.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/cpu/rsp/rspcp2d.h')
-rw-r--r--src/devices/cpu/rsp/rspcp2d.h109
1 files changed, 109 insertions, 0 deletions
diff --git a/src/devices/cpu/rsp/rspcp2d.h b/src/devices/cpu/rsp/rspcp2d.h
new file mode 100644
index 00000000000..831773d5c66
--- /dev/null
+++ b/src/devices/cpu/rsp/rspcp2d.h
@@ -0,0 +1,109 @@
+// license:BSD-3-Clause
+// copyright-holders:Ryan Holtz
+/***************************************************************************
+
+ rspcp2d.h
+
+ Interface file for Reality Signal Processor (RSP) vector extensions
+ using Universal Machine Language (UML) dynamic recompilation.
+
+***************************************************************************/
+
+#pragma once
+
+#ifndef __RSPCP2D_H__
+#define __RSPCP2D_H__
+
+#include "cpu/drcuml.h"
+#include "rsp.h"
+#include "rspcp2.h"
+
+class rsp_cop2_drc : public rsp_cop2
+{
+ friend class rsp_device;
+
+ rsp_cop2_drc(rsp_device &rsp, running_machine &machine) : rsp_cop2(rsp, machine) { }
+
+ virtual int generate_cop2(drcuml_block *block, rsp_device::compiler_state *compiler, const opcode_desc *desc);
+ virtual int generate_lwc2(drcuml_block *block, rsp_device::compiler_state *compiler, const opcode_desc *desc);
+ virtual int generate_swc2(drcuml_block *block, rsp_device::compiler_state *compiler, const opcode_desc *desc);
+
+ virtual void state_string_export(const int index, std::string &str);
+
+ void cfunc_unimplemented_opcode();
+
+public:
+ virtual void lbv();
+ virtual void lsv();
+ virtual void llv();
+ virtual void ldv();
+ virtual void lqv();
+ virtual void lrv();
+ virtual void lpv();
+ virtual void luv();
+ virtual void lhv();
+ virtual void lfv();
+ virtual void lwv();
+ virtual void ltv();
+ virtual void sbv();
+ virtual void ssv();
+ virtual void slv();
+ virtual void sdv();
+ virtual void sqv();
+ virtual void srv();
+ virtual void spv();
+ virtual void suv();
+ virtual void shv();
+ virtual void sfv();
+ virtual void swv();
+ virtual void stv();
+ virtual void vmulf();
+ virtual void vmulu();
+ virtual void vmudl();
+ virtual void vmudm();
+ virtual void vmudn();
+ virtual void vmudh();
+ virtual void vmacf();
+ virtual void vmacu();
+ virtual void vmadl();
+ virtual void vmadm();
+ virtual void vmadn();
+ virtual void vmadh();
+ virtual void vadd();
+ virtual void vsub();
+ virtual void vabs();
+ virtual void vaddc();
+ virtual void vsubc();
+ virtual void vaddb();
+ virtual void vsaw();
+ virtual void vlt();
+ virtual void veq();
+ virtual void vne();
+ virtual void vge();
+ virtual void vcl();
+ virtual void vch();
+ virtual void vcr();
+ virtual void vmrg();
+ virtual void vand();
+ virtual void vnand();
+ virtual void vor();
+ virtual void vnor();
+ virtual void vxor();
+ virtual void vnxor();
+ virtual void vrcp();
+ virtual void vrcpl();
+ virtual void vrcph();
+ virtual void vmov();
+ virtual void vrsql();
+ virtual void vrsqh();
+ virtual void vrsq();
+ virtual void mfc2();
+ virtual void cfc2();
+ virtual void mtc2();
+ virtual void ctc2();
+
+private:
+ virtual int generate_vector_opcode(drcuml_block *block, rsp_device::compiler_state *compiler, const opcode_desc *desc);
+};
+
+#endif /* __RSPCP2D_H__ */