mirror of
https://github.com/holub/mame
synced 2025-04-23 00:39:36 +03:00
nw, remove RSP SIMD version
This commit is contained in:
parent
1662e179be
commit
e4b2a43b96
@ -133,7 +133,6 @@ class rsp_device : public cpu_device
|
||||
friend class rsp_frontend;
|
||||
friend class rsp_cop2;
|
||||
friend class rsp_cop2_drc;
|
||||
friend class rsp_cop2_simd;
|
||||
|
||||
public:
|
||||
// construction/destruction
|
||||
|
@ -16,9 +16,6 @@
|
||||
#include "cpu/drcuml.h"
|
||||
#include "rsp.h"
|
||||
|
||||
#define USE_SIMD (0)
|
||||
#define SIMUL_SIMD (0)
|
||||
|
||||
union VECTOR_REG
|
||||
{
|
||||
UINT64 d[2];
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,156 +0,0 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders:Ryan Holtz
|
||||
/***************************************************************************
|
||||
|
||||
rspcp2s.h
|
||||
|
||||
Interface file for Reality Signal Processor (RSP) vector extensions
|
||||
using SSSE3 SIMD acceleration.
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifndef __RSPCP2S_H__
|
||||
#define __RSPCP2S_H__
|
||||
|
||||
#include "cpu/drcuml.h"
|
||||
#include "rsp.h"
|
||||
#include "rspcp2.h"
|
||||
|
||||
#include <tmmintrin.h>
|
||||
|
||||
class rsp_cop2_simd : public rsp_cop2_drc
|
||||
{
|
||||
friend class rsp_device;
|
||||
|
||||
rsp_cop2_simd(rsp_device &rsp, running_machine &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);
|
||||
|
||||
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();
|
||||
|
||||
#if SIMUL_SIMD
|
||||
void backup_regs();
|
||||
void restore_regs();
|
||||
void verify_regs();
|
||||
#endif
|
||||
|
||||
private:
|
||||
virtual int generate_vector_opcode(drcuml_block *block, rsp_device::compiler_state *compiler, const opcode_desc *desc);
|
||||
|
||||
UINT16 ACCUM_H(int x);
|
||||
UINT16 ACCUM_M(int x);
|
||||
UINT16 ACCUM_L(int x);
|
||||
UINT16 ACCUM_LL(int x);
|
||||
UINT16 CARRY_FLAG(const int x);
|
||||
UINT16 COMPARE_FLAG(const int x);
|
||||
UINT16 CLIP1_FLAG(const int x);
|
||||
UINT16 ZERO_FLAG(const int x);
|
||||
UINT16 CLIP2_FLAG(const int x);
|
||||
UINT16 SATURATE_ACCUM(int accum, int slice, UINT16 negative, UINT16 positive);
|
||||
|
||||
__m128i m_accum_h;
|
||||
__m128i m_accum_m;
|
||||
__m128i m_accum_l;
|
||||
__m128i m_accum_ll;
|
||||
|
||||
// Mirror of v[] for now, to be used in parallel as
|
||||
// more vector ops are transitioned over
|
||||
__m128i m_xv[32];
|
||||
__m128i m_xvflag[6];
|
||||
|
||||
#if SIMUL_SIMD
|
||||
UINT32 m_old_r[35];
|
||||
UINT8 m_old_dmem[4096];
|
||||
|
||||
UINT32 m_scalar_r[35];
|
||||
UINT8 m_scalar_dmem[4096];
|
||||
|
||||
INT32 m_old_reciprocal_res;
|
||||
UINT32 m_old_reciprocal_high;
|
||||
INT32 m_old_dp_allowed;
|
||||
|
||||
INT32 m_scalar_reciprocal_res;
|
||||
UINT32 m_scalar_reciprocal_high;
|
||||
INT32 m_scalar_dp_allowed;
|
||||
|
||||
INT32 m_simd_reciprocal_res;
|
||||
UINT32 m_simd_reciprocal_high;
|
||||
INT32 m_simd_dp_allowed;
|
||||
#endif
|
||||
};
|
||||
|
||||
#endif /* __RSPCP2S_H__ */
|
Loading…
Reference in New Issue
Block a user