diff options
Diffstat (limited to 'src/devices/cpu/rsp/rspcp2d.h')
-rw-r--r-- | src/devices/cpu/rsp/rspcp2d.h | 92 |
1 files changed, 81 insertions, 11 deletions
diff --git a/src/devices/cpu/rsp/rspcp2d.h b/src/devices/cpu/rsp/rspcp2d.h index 2e07403458d..09263a39cdf 100644 --- a/src/devices/cpu/rsp/rspcp2d.h +++ b/src/devices/cpu/rsp/rspcp2d.h @@ -8,30 +8,100 @@ using Universal Machine Language (UML) dynamic recompilation. ***************************************************************************/ +#ifndef MAME_CPU_RSP_RSPCP2D_H +#define MAME_CPU_RSP_RSPCP2D_H #pragma once -#ifndef __RSPCP2D_H__ -#define __RSPCP2D_H__ - -#include "cpu/drcuml.h" #include "rsp.h" #include "rspcp2.h" +#include "cpu/drcuml.h" -class rsp_cop2_drc : public rsp_cop2 + +class rsp_device::cop2_drc : public rsp_device::cop2 { friend class rsp_device; public: - rsp_cop2_drc(rsp_device &rsp, running_machine &machine) : rsp_cop2(rsp, machine) { } + cop2_drc(rsp_device &rsp, running_machine &machine) : cop2(rsp, machine) { } private: - virtual bool generate_cop2(drcuml_block *block, rsp_device::compiler_state *compiler, const opcode_desc *desc) override; - virtual bool generate_lwc2(drcuml_block *block, rsp_device::compiler_state *compiler, const opcode_desc *desc) override; - virtual bool generate_swc2(drcuml_block *block, rsp_device::compiler_state *compiler, const opcode_desc *desc) override; + virtual bool generate_cop2(drcuml_block &block, rsp_device::compiler_state &compiler, const opcode_desc *desc) override; + virtual bool generate_lwc2(drcuml_block &block, rsp_device::compiler_state &compiler, const opcode_desc *desc) override; + virtual bool generate_swc2(drcuml_block &block, rsp_device::compiler_state &compiler, const opcode_desc *desc) override; virtual void state_string_export(const int index, std::string &str) const override; void cfunc_unimplemented_opcode() override; + static void unimplemented_opcode(void *param) { ((cop2 *)param)->cfunc_unimplemented_opcode(); } + static void cfunc_lbv(void *param) { ((cop2 *)param)->lbv(); } + static void cfunc_lsv(void *param) { ((cop2 *)param)->lsv(); } + static void cfunc_llv(void *param) { ((cop2 *)param)->llv(); } + static void cfunc_ldv(void *param) { ((cop2 *)param)->ldv(); } + static void cfunc_lqv(void *param) { ((cop2 *)param)->lqv(); } + static void cfunc_lrv(void *param) { ((cop2 *)param)->lrv(); } + static void cfunc_lpv(void *param) { ((cop2 *)param)->lpv(); } + static void cfunc_luv(void *param) { ((cop2 *)param)->luv(); } + static void cfunc_lhv(void *param) { ((cop2 *)param)->lhv(); } + static void cfunc_lfv(void *param) { ((cop2 *)param)->lfv(); } + static void cfunc_lwv(void *param) { ((cop2 *)param)->lwv(); } + static void cfunc_ltv(void *param) { ((cop2 *)param)->ltv(); } + static void cfunc_sbv(void *param) { ((cop2 *)param)->sbv(); } + static void cfunc_ssv(void *param) { ((cop2 *)param)->ssv(); } + static void cfunc_slv(void *param) { ((cop2 *)param)->slv(); } + static void cfunc_sdv(void *param) { ((cop2 *)param)->sdv(); } + static void cfunc_sqv(void *param) { ((cop2 *)param)->sqv(); } + static void cfunc_srv(void *param) { ((cop2 *)param)->srv(); } + static void cfunc_spv(void *param) { ((cop2 *)param)->spv(); } + static void cfunc_suv(void *param) { ((cop2 *)param)->suv(); } + static void cfunc_shv(void *param) { ((cop2 *)param)->shv(); } + static void cfunc_sfv(void *param) { ((cop2 *)param)->sfv(); } + static void cfunc_swv(void *param) { ((cop2 *)param)->swv(); } + static void cfunc_stv(void *param) { ((cop2 *)param)->stv(); } + static void cfunc_vmulf(void *param) { ((cop2 *)param)->vmulf(); } + static void cfunc_vmulu(void *param) { ((cop2 *)param)->vmulu(); } + static void cfunc_vmudl(void *param) { ((cop2 *)param)->vmudl(); } + static void cfunc_vmudm(void *param) { ((cop2 *)param)->vmudm(); } + static void cfunc_vmudn(void *param) { ((cop2 *)param)->vmudn(); } + static void cfunc_vmudh(void *param) { ((cop2 *)param)->vmudh(); } + static void cfunc_vmacf(void *param) { ((cop2 *)param)->vmacf(); } + static void cfunc_vmacu(void *param) { ((cop2 *)param)->vmacu(); } + static void cfunc_vmadl(void *param) { ((cop2 *)param)->vmadl(); } + static void cfunc_vmadm(void *param) { ((cop2 *)param)->vmadm(); } + static void cfunc_vmadn(void *param) { ((cop2 *)param)->vmadn(); } + static void cfunc_vmadh(void *param) { ((cop2 *)param)->vmadh(); } + static void cfunc_vadd(void *param) { ((cop2 *)param)->vadd(); } + static void cfunc_vsub(void *param) { ((cop2 *)param)->vsub(); } + static void cfunc_vabs(void *param) { ((cop2 *)param)->vabs(); } + static void cfunc_vaddc(void *param) { ((cop2 *)param)->vaddc(); } + static void cfunc_vsubc(void *param) { ((cop2 *)param)->vsubc(); } + static void cfunc_vaddb(void *param) { ((cop2 *)param)->vaddb(); } + static void cfunc_vsaw(void *param) { ((cop2 *)param)->vsaw(); } + static void cfunc_vlt(void *param) { ((cop2 *)param)->vlt(); } + static void cfunc_veq(void *param) { ((cop2 *)param)->veq(); } + static void cfunc_vne(void *param) { ((cop2 *)param)->vne(); } + static void cfunc_vge(void *param) { ((cop2 *)param)->vge(); } + static void cfunc_vcl(void *param) { ((cop2 *)param)->vcl(); } + static void cfunc_vch(void *param) { ((cop2 *)param)->vch(); } + static void cfunc_vcr(void *param) { ((cop2 *)param)->vcr(); } + static void cfunc_vmrg(void *param) { ((cop2 *)param)->vmrg(); } + static void cfunc_vand(void *param) { ((cop2 *)param)->vand(); } + static void cfunc_vnand(void *param) { ((cop2 *)param)->vnand(); } + static void cfunc_vor(void *param) { ((cop2 *)param)->vor(); } + static void cfunc_vnor(void *param) { ((cop2 *)param)->vnor(); } + static void cfunc_vxor(void *param) { ((cop2 *)param)->vxor(); } + static void cfunc_vnxor(void *param) { ((cop2 *)param)->vnxor(); } + static void cfunc_vrcp(void *param) { ((cop2 *)param)->vrcp(); } + static void cfunc_vrcpl(void *param) { ((cop2 *)param)->vrcpl(); } + static void cfunc_vrcph(void *param) { ((cop2 *)param)->vrcph(); } + static void cfunc_vmov(void *param) { ((cop2 *)param)->vmov(); } + static void cfunc_vrsq(void *param) { ((cop2 *)param)->vrsq(); } + static void cfunc_vrsql(void *param) { ((cop2 *)param)->vrsql(); } + static void cfunc_vrsqh(void *param) { ((cop2 *)param)->vrsqh(); } + static void cfunc_mfc2(void *param) { ((cop2 *)param)->mfc2(); } + static void cfunc_cfc2(void *param) { ((cop2 *)param)->cfc2(); } + static void cfunc_mtc2(void *param) { ((cop2 *)param)->mtc2(); } + static void cfunc_ctc2(void *param) { ((cop2 *)param)->ctc2(); } + public: virtual void lbv() override; virtual void lsv() override; @@ -103,7 +173,7 @@ public: virtual void ctc2() override; private: - virtual bool generate_vector_opcode(drcuml_block *block, rsp_device::compiler_state *compiler, const opcode_desc *desc) override; + virtual bool generate_vector_opcode(drcuml_block &block, rsp_device::compiler_state &compiler, const opcode_desc *desc) override; }; -#endif /* __RSPCP2D_H__ */ +#endif // MAME_CPU_RSP_RSPCP2D_H |