mirror of
https://github.com/PCSX2/pcsx2.git
synced 2026-09-11 15:22:58 +02:00
EE/Rec: Move opcode defs to common header
Signed-off-by: SternXD <stern@sidestore.io>
This commit is contained in:
@@ -1010,21 +1010,10 @@ set(pcsx2x86Sources
|
||||
# x86 headers
|
||||
set(pcsx2x86Headers
|
||||
x86/BaseblockEx.h
|
||||
x86/iCOP0.h
|
||||
x86/iCore.h
|
||||
x86/iFPU.h
|
||||
x86/iMMI.h
|
||||
x86/iR3000A.h
|
||||
x86/iR5900Arit.h
|
||||
x86/iR5900AritImm.h
|
||||
x86/iR5900Branch.h
|
||||
x86/iR5900.h
|
||||
x86/iR5900Analysis.h
|
||||
x86/iR5900Jump.h
|
||||
x86/iR5900LoadStore.h
|
||||
x86/iR5900Move.h
|
||||
x86/iR5900MultDiv.h
|
||||
x86/iR5900Shift.h
|
||||
x86/microVU_Alloc.inl
|
||||
x86/microVU_Analyze.inl
|
||||
x86/microVU_Branch.inl
|
||||
|
||||
@@ -6,19 +6,6 @@
|
||||
#include "R5900OpcodeTables.h"
|
||||
#include "R5900.h"
|
||||
|
||||
// TODO(Stenzek): Move headers to common code.
|
||||
#include "x86/iR5900AritImm.h"
|
||||
#include "x86/iR5900Arit.h"
|
||||
#include "x86/iR5900MultDiv.h"
|
||||
#include "x86/iR5900Shift.h"
|
||||
#include "x86/iR5900Branch.h"
|
||||
#include "x86/iR5900Jump.h"
|
||||
#include "x86/iR5900LoadStore.h"
|
||||
#include "x86/iR5900Move.h"
|
||||
#include "x86/iMMI.h"
|
||||
#include "x86/iCOP0.h"
|
||||
#include "x86/iFPU.h"
|
||||
|
||||
namespace R5900
|
||||
{
|
||||
namespace Opcodes
|
||||
|
||||
@@ -118,6 +118,285 @@ namespace R5900
|
||||
void recTEQI();
|
||||
void recTNEI();
|
||||
|
||||
// Arithmetic with immediate (OP rt, rs, immediate)
|
||||
void recADDI();
|
||||
void recADDIU();
|
||||
void recDADDI();
|
||||
void recDADDIU();
|
||||
void recANDI();
|
||||
void recORI();
|
||||
void recXORI();
|
||||
void recSLTI();
|
||||
void recSLTIU();
|
||||
|
||||
// Register arithmetic (OP rd, rs, rt)
|
||||
void recADD();
|
||||
void recADDU();
|
||||
void recDADD();
|
||||
void recDADDU();
|
||||
void recSUB();
|
||||
void recSUBU();
|
||||
void recDSUB();
|
||||
void recDSUBU();
|
||||
void recAND();
|
||||
void recOR();
|
||||
void recXOR();
|
||||
void recNOR();
|
||||
void recSLT();
|
||||
void recSLTU();
|
||||
|
||||
// Register mult/div (OP rs, rt)
|
||||
void recMULT();
|
||||
void recMULTU();
|
||||
void recDIV();
|
||||
void recDIVU();
|
||||
|
||||
// Shift arithmetic (OP rd, rt, sa / OP rd, rt, rs)
|
||||
void recSLL();
|
||||
void recSRL();
|
||||
void recSRA();
|
||||
void recDSLL();
|
||||
void recDSRL();
|
||||
void recDSRA();
|
||||
void recDSLL32();
|
||||
void recDSRL32();
|
||||
void recDSRA32();
|
||||
void recSLLV();
|
||||
void recSRLV();
|
||||
void recSRAV();
|
||||
void recDSLLV();
|
||||
void recDSRLV();
|
||||
void recDSRAV();
|
||||
|
||||
// Branch (OP rs, rt, offset)
|
||||
void recBEQ();
|
||||
void recBEQL();
|
||||
void recBNE();
|
||||
void recBNEL();
|
||||
void recBLTZ();
|
||||
void recBLTZL();
|
||||
void recBLTZAL();
|
||||
void recBLTZALL();
|
||||
void recBGTZ();
|
||||
void recBGTZL();
|
||||
void recBLEZ();
|
||||
void recBLEZL();
|
||||
void recBGEZ();
|
||||
void recBGEZL();
|
||||
void recBGEZAL();
|
||||
void recBGEZALL();
|
||||
|
||||
// Jump (OP target / OP rs)
|
||||
void recJ();
|
||||
void recJAL();
|
||||
void recJR();
|
||||
void recJALR();
|
||||
|
||||
// Load and store for GPR (OP rt, offset(base))
|
||||
void recLB();
|
||||
void recLBU();
|
||||
void recLH();
|
||||
void recLHU();
|
||||
void recLW();
|
||||
void recLWU();
|
||||
void recLWL();
|
||||
void recLWR();
|
||||
void recLD();
|
||||
void recLDR();
|
||||
void recLDL();
|
||||
void recLQ();
|
||||
void recSB();
|
||||
void recSH();
|
||||
void recSW();
|
||||
void recSWL();
|
||||
void recSWR();
|
||||
void recSD();
|
||||
void recSDL();
|
||||
void recSDR();
|
||||
void recSQ();
|
||||
void recLWC1();
|
||||
void recSWC1();
|
||||
void recLQC2();
|
||||
void recSQC2();
|
||||
|
||||
// Move (OP rd, rs)
|
||||
void recLUI();
|
||||
void recMFLO();
|
||||
void recMFHI();
|
||||
void recMTLO();
|
||||
void recMTHI();
|
||||
void recMOVN();
|
||||
void recMOVZ();
|
||||
|
||||
// These are instructions contained in the MMI "opcode space" but are not
|
||||
// actually MMI instructions. They are just specialized versions of standard
|
||||
// instructions that "fit" into the second pipeline of the EE.
|
||||
void recMADD1();
|
||||
void recMADDU1();
|
||||
void recMADD();
|
||||
void recMADDU();
|
||||
void recMTHI1();
|
||||
void recMTLO1();
|
||||
void recMFHI1();
|
||||
void recMFLO1();
|
||||
void recMULT1();
|
||||
void recMULTU1();
|
||||
void recDIV1();
|
||||
void recDIVU1();
|
||||
|
||||
// Multimedia Extensions (MMI)
|
||||
namespace MMI
|
||||
{
|
||||
void recPLZCW();
|
||||
void recMMI0();
|
||||
void recMMI1();
|
||||
void recMMI2();
|
||||
void recMMI3();
|
||||
void recPMFHL();
|
||||
void recPMTHL();
|
||||
void recPMAXW();
|
||||
void recPMINW();
|
||||
void recPPACW();
|
||||
void recPEXTLH();
|
||||
void recPPACH();
|
||||
void recPEXTLB();
|
||||
void recPPACB();
|
||||
void recPEXT5();
|
||||
void recPPAC5();
|
||||
void recPABSW();
|
||||
void recPADSBH();
|
||||
void recPABSH();
|
||||
void recPADDUW();
|
||||
void recPSUBUW();
|
||||
void recPSUBUH();
|
||||
void recPEXTUH();
|
||||
void recPSUBUB();
|
||||
void recPEXTUB();
|
||||
void recQFSRV();
|
||||
void recPMADDW();
|
||||
void recPSLLVW();
|
||||
void recPSRLVW();
|
||||
void recPMSUBW();
|
||||
void recPINTH();
|
||||
void recPMULTW();
|
||||
void recPDIVW();
|
||||
void recPMADDH();
|
||||
void recPHMADH();
|
||||
void recPMSUBH();
|
||||
void recPHMSBH();
|
||||
void recPEXEH();
|
||||
void recPREVH();
|
||||
void recPMULTH();
|
||||
void recPDIVBW();
|
||||
void recPEXEW();
|
||||
void recPROT3W();
|
||||
void recPMADDUW();
|
||||
void recPSRAVW();
|
||||
void recPINTEH();
|
||||
void recPMULTUW();
|
||||
void recPDIVUW();
|
||||
void recPEXCH();
|
||||
void recPEXCW();
|
||||
void recPSRLH();
|
||||
void recPSRLW();
|
||||
void recPSRAH();
|
||||
void recPSRAW();
|
||||
void recPSLLH();
|
||||
void recPSLLW();
|
||||
void recPMAXH();
|
||||
void recPCGTB();
|
||||
void recPCGTH();
|
||||
void recPCGTW();
|
||||
void recPADDSB();
|
||||
void recPADDSH();
|
||||
void recPADDSW();
|
||||
void recPSUBSB();
|
||||
void recPSUBSH();
|
||||
void recPSUBSW();
|
||||
void recPADDB();
|
||||
void recPADDH();
|
||||
void recPADDW();
|
||||
void recPSUBB();
|
||||
void recPSUBH();
|
||||
void recPSUBW();
|
||||
void recPEXTLW();
|
||||
void recPEXTUW();
|
||||
void recPMINH();
|
||||
void recPCEQB();
|
||||
void recPCEQH();
|
||||
void recPCEQW();
|
||||
void recPADDUB();
|
||||
void recPADDUH();
|
||||
void recPMFHI();
|
||||
void recPMFLO();
|
||||
void recPAND();
|
||||
void recPXOR();
|
||||
void recPCPYLD();
|
||||
void recPNOR();
|
||||
void recPMTHI();
|
||||
void recPMTLO();
|
||||
void recPCPYUD();
|
||||
void recPOR();
|
||||
void recPCPYH();
|
||||
} // namespace MMI
|
||||
|
||||
// System Control Coprocessor (COP0)
|
||||
namespace COP0
|
||||
{
|
||||
void recMFC0();
|
||||
void recMTC0();
|
||||
void recBC0F();
|
||||
void recBC0T();
|
||||
void recBC0FL();
|
||||
void recBC0TL();
|
||||
void recTLBR();
|
||||
void recTLBWI();
|
||||
void recTLBWR();
|
||||
void recTLBP();
|
||||
void recERET();
|
||||
void recDI();
|
||||
void recEI();
|
||||
} // namespace COP0
|
||||
|
||||
// Floating Point Unit Coprocessor (COP1 / FPU)
|
||||
namespace COP1
|
||||
{
|
||||
void recMFC1();
|
||||
void recCFC1();
|
||||
void recMTC1();
|
||||
void recCTC1();
|
||||
void recCOP1_BC1();
|
||||
void recCOP1_S();
|
||||
void recCOP1_W();
|
||||
void recC_EQ();
|
||||
void recC_F();
|
||||
void recC_LT();
|
||||
void recC_LE();
|
||||
void recADD_S();
|
||||
void recSUB_S();
|
||||
void recMUL_S();
|
||||
void recDIV_S();
|
||||
void recSQRT_S();
|
||||
void recABS_S();
|
||||
void recMOV_S();
|
||||
void recNEG_S();
|
||||
void recRSQRT_S();
|
||||
void recADDA_S();
|
||||
void recSUBA_S();
|
||||
void recMULA_S();
|
||||
void recMADD_S();
|
||||
void recMSUB_S();
|
||||
void recMADDA_S();
|
||||
void recMSUBA_S();
|
||||
void recCVT_S();
|
||||
void recCVT_W();
|
||||
void recMAX_S();
|
||||
void recMIN_S();
|
||||
void recBC1F();
|
||||
void recBC1T();
|
||||
void recBC1FL();
|
||||
void recBC1TL();
|
||||
} // namespace COP1
|
||||
} }
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -910,18 +910,7 @@
|
||||
<ClInclude Include="R5900.h" />
|
||||
<ClInclude Include="R5900OpcodeTables.h" />
|
||||
<ClInclude Include="COP0.h" />
|
||||
<ClInclude Include="x86\iCOP0.h" />
|
||||
<ClInclude Include="x86\iFPU.h" />
|
||||
<ClInclude Include="x86\iMMI.h" />
|
||||
<ClInclude Include="x86\iR5900.h" />
|
||||
<ClInclude Include="x86\iR5900Arit.h" />
|
||||
<ClInclude Include="x86\iR5900AritImm.h" />
|
||||
<ClInclude Include="x86\iR5900Branch.h" />
|
||||
<ClInclude Include="x86\iR5900Jump.h" />
|
||||
<ClInclude Include="x86\iR5900LoadStore.h" />
|
||||
<ClInclude Include="x86\iR5900Move.h" />
|
||||
<ClInclude Include="x86\iR5900MultDiv.h" />
|
||||
<ClInclude Include="x86\iR5900Shift.h" />
|
||||
<ClInclude Include="IopBios.h" />
|
||||
<ClInclude Include="IopCounters.h" />
|
||||
<ClInclude Include="IopDma.h" />
|
||||
|
||||
@@ -1559,42 +1559,9 @@
|
||||
<ClInclude Include="COP0.h">
|
||||
<Filter>System\Ps2\EmotionEngine\EE</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="x86\iCOP0.h">
|
||||
<Filter>System\Ps2\EmotionEngine\EE\Dynarec</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="x86\iFPU.h">
|
||||
<Filter>System\Ps2\EmotionEngine\EE\Dynarec</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="x86\iMMI.h">
|
||||
<Filter>System\Ps2\EmotionEngine\EE\Dynarec</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="x86\iR5900.h">
|
||||
<Filter>System\Ps2\EmotionEngine\EE\Dynarec</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="x86\iR5900Arit.h">
|
||||
<Filter>System\Ps2\EmotionEngine\EE\Dynarec</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="x86\iR5900AritImm.h">
|
||||
<Filter>System\Ps2\EmotionEngine\EE\Dynarec</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="x86\iR5900Branch.h">
|
||||
<Filter>System\Ps2\EmotionEngine\EE\Dynarec</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="x86\iR5900Jump.h">
|
||||
<Filter>System\Ps2\EmotionEngine\EE\Dynarec</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="x86\iR5900LoadStore.h">
|
||||
<Filter>System\Ps2\EmotionEngine\EE\Dynarec</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="x86\iR5900Move.h">
|
||||
<Filter>System\Ps2\EmotionEngine\EE\Dynarec</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="x86\iR5900MultDiv.h">
|
||||
<Filter>System\Ps2\EmotionEngine\EE\Dynarec</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="x86\iR5900Shift.h">
|
||||
<Filter>System\Ps2\EmotionEngine\EE\Dynarec</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="IopBios.h">
|
||||
<Filter>System\Ps2\Iop</Filter>
|
||||
</ClInclude>
|
||||
|
||||
+1
-1
@@ -8,9 +8,9 @@
|
||||
// suffice.
|
||||
|
||||
#include "Common.h"
|
||||
#include "COP0.h"
|
||||
#include "R5900OpcodeTables.h"
|
||||
#include "iR5900.h"
|
||||
#include "iCOP0.h"
|
||||
|
||||
namespace Interp = R5900::Interpreter::OpcodeImpl::COP0;
|
||||
using namespace x86Emitter;
|
||||
|
||||
@@ -1,35 +0,0 @@
|
||||
// SPDX-FileCopyrightText: 2002-2026 PCSX2 Dev Team
|
||||
// SPDX-License-Identifier: GPL-3.0+
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "COP0.h"
|
||||
|
||||
/*********************************************************
|
||||
* COP0 opcodes *
|
||||
* *
|
||||
*********************************************************/
|
||||
|
||||
namespace R5900 {
|
||||
namespace Dynarec {
|
||||
namespace OpcodeImpl {
|
||||
namespace COP0 {
|
||||
|
||||
void recMFC0();
|
||||
void recMTC0();
|
||||
void recBC0F();
|
||||
void recBC0T();
|
||||
void recBC0FL();
|
||||
void recBC0TL();
|
||||
void recTLBR();
|
||||
void recTLBWI();
|
||||
void recTLBWR();
|
||||
void recTLBP();
|
||||
void recERET();
|
||||
void recDI();
|
||||
void recEI();
|
||||
|
||||
} // namespace COP0
|
||||
} // namespace OpcodeImpl
|
||||
} // namespace Dynarec
|
||||
} // namespace R5900
|
||||
@@ -4,7 +4,6 @@
|
||||
#include "Common.h"
|
||||
#include "R5900OpcodeTables.h"
|
||||
#include "iR5900.h"
|
||||
#include "iFPU.h"
|
||||
|
||||
using namespace x86Emitter;
|
||||
|
||||
|
||||
@@ -1,53 +0,0 @@
|
||||
// SPDX-FileCopyrightText: 2002-2026 PCSX2 Dev Team
|
||||
// SPDX-License-Identifier: GPL-3.0+
|
||||
|
||||
#pragma once
|
||||
|
||||
alignas(16) extern const u32 g_minvals[4];
|
||||
alignas(16) extern const u32 g_maxvals[4];
|
||||
|
||||
namespace R5900 {
|
||||
namespace Dynarec {
|
||||
namespace OpcodeImpl {
|
||||
namespace COP1 {
|
||||
|
||||
void recMFC1();
|
||||
void recCFC1();
|
||||
void recMTC1();
|
||||
void recCTC1();
|
||||
void recCOP1_BC1();
|
||||
void recCOP1_S();
|
||||
void recCOP1_W();
|
||||
void recC_EQ();
|
||||
void recC_F();
|
||||
void recC_LT();
|
||||
void recC_LE();
|
||||
void recADD_S();
|
||||
void recSUB_S();
|
||||
void recMUL_S();
|
||||
void recDIV_S();
|
||||
void recSQRT_S();
|
||||
void recABS_S();
|
||||
void recMOV_S();
|
||||
void recNEG_S();
|
||||
void recRSQRT_S();
|
||||
void recADDA_S();
|
||||
void recSUBA_S();
|
||||
void recMULA_S();
|
||||
void recMADD_S();
|
||||
void recMSUB_S();
|
||||
void recMADDA_S();
|
||||
void recMSUBA_S();
|
||||
void recCVT_S();
|
||||
void recCVT_W();
|
||||
void recMAX_S();
|
||||
void recMIN_S();
|
||||
void recBC1F();
|
||||
void recBC1T();
|
||||
void recBC1FL();
|
||||
void recBC1TL();
|
||||
|
||||
} // namespace COP1
|
||||
} // namespace OpcodeImpl
|
||||
} // namespace Dynarec
|
||||
} // namespace R5900
|
||||
@@ -5,7 +5,6 @@
|
||||
#include "R5900OpcodeTables.h"
|
||||
#include "common/emitter/x86emitter.h"
|
||||
#include "iR5900.h"
|
||||
#include "iFPU.h"
|
||||
|
||||
/* This is a version of the FPU that emulates an exponent of 0xff and overflow/underflow flags */
|
||||
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
#include "Common.h"
|
||||
#include "R5900OpcodeTables.h"
|
||||
#include "iR5900.h"
|
||||
#include "iMMI.h"
|
||||
#include "common/BitUtils.h"
|
||||
|
||||
using namespace x86Emitter;
|
||||
|
||||
@@ -1,126 +0,0 @@
|
||||
// SPDX-FileCopyrightText: 2002-2026 PCSX2 Dev Team
|
||||
// SPDX-License-Identifier: GPL-3.0+
|
||||
|
||||
#pragma once
|
||||
|
||||
namespace R5900 {
|
||||
namespace Dynarec {
|
||||
namespace OpcodeImpl {
|
||||
|
||||
// These are instructions contained the MMI "opcode space" but are not
|
||||
// actually MMI instructions. They are just specialized versions of standard
|
||||
// instructions that "fit" into the second pipeline of the EE.
|
||||
|
||||
void recMADD1();
|
||||
void recMADDU1();
|
||||
void recMADD();
|
||||
void recMADDU();
|
||||
|
||||
void recMTHI1();
|
||||
void recMTLO1();
|
||||
void recMFHI1();
|
||||
void recMFLO1();
|
||||
void recMULT1();
|
||||
void recMULTU1();
|
||||
void recDIV1();
|
||||
void recDIVU1();
|
||||
|
||||
namespace MMI {
|
||||
|
||||
void recPLZCW();
|
||||
void recMMI0();
|
||||
void recMMI1();
|
||||
void recMMI2();
|
||||
void recMMI3();
|
||||
void recPMFHL();
|
||||
void recPMTHL();
|
||||
void recPMAXW();
|
||||
void recPMINW();
|
||||
void recPPACW();
|
||||
void recPEXTLH();
|
||||
void recPPACH();
|
||||
void recPEXTLB();
|
||||
void recPPACB();
|
||||
void recPEXT5();
|
||||
void recPPAC5();
|
||||
void recPABSW();
|
||||
void recPADSBH();
|
||||
void recPABSH();
|
||||
void recPADDUW();
|
||||
void recPSUBUW();
|
||||
void recPSUBUH();
|
||||
void recPEXTUH();
|
||||
void recPSUBUB();
|
||||
void recPEXTUB();
|
||||
void recQFSRV();
|
||||
void recPMADDW();
|
||||
void recPSLLVW();
|
||||
void recPSRLVW();
|
||||
void recPMSUBW();
|
||||
void recPINTH();
|
||||
void recPMULTW();
|
||||
void recPDIVW();
|
||||
void recPMADDH();
|
||||
void recPHMADH();
|
||||
void recPMSUBH();
|
||||
void recPHMSBH();
|
||||
void recPEXEH();
|
||||
void recPREVH();
|
||||
void recPMULTH();
|
||||
void recPDIVBW();
|
||||
void recPEXEW();
|
||||
void recPROT3W();
|
||||
void recPMADDUW();
|
||||
void recPSRAVW();
|
||||
void recPINTEH();
|
||||
void recPMULTUW();
|
||||
void recPDIVUW();
|
||||
void recPEXCH();
|
||||
void recPEXCW();
|
||||
|
||||
void recPSRLH();
|
||||
void recPSRLW();
|
||||
void recPSRAH();
|
||||
void recPSRAW();
|
||||
void recPSLLH();
|
||||
void recPSLLW();
|
||||
void recPMAXH();
|
||||
void recPCGTB();
|
||||
void recPCGTH();
|
||||
void recPCGTW();
|
||||
void recPADDSB();
|
||||
void recPADDSH();
|
||||
void recPADDSW();
|
||||
void recPSUBSB();
|
||||
void recPSUBSH();
|
||||
void recPSUBSW();
|
||||
void recPADDB();
|
||||
void recPADDH();
|
||||
void recPADDW();
|
||||
void recPSUBB();
|
||||
void recPSUBH();
|
||||
void recPSUBW();
|
||||
void recPEXTLW();
|
||||
void recPEXTUW();
|
||||
void recPMINH();
|
||||
void recPCEQB();
|
||||
void recPCEQH();
|
||||
void recPCEQW();
|
||||
void recPADDUB();
|
||||
void recPADDUH();
|
||||
void recPMFHI();
|
||||
void recPMFLO();
|
||||
void recPAND();
|
||||
void recPXOR();
|
||||
void recPCPYLD();
|
||||
void recPNOR();
|
||||
void recPMTHI();
|
||||
void recPMTLO();
|
||||
void recPCPYUD();
|
||||
void recPOR();
|
||||
void recPCPYH();
|
||||
|
||||
} // namespace MMI
|
||||
} // namespace OpcodeImpl
|
||||
} // namespace Dynarec
|
||||
} // namespace R5900
|
||||
@@ -21,6 +21,10 @@ extern u32 target; // branch target
|
||||
extern u32 s_nBlockCycles; // cycles of current block recompiling
|
||||
extern bool s_nBlockInterlocked; // Current block has VU0 interlocking
|
||||
|
||||
// FPU clamping constants
|
||||
alignas(16) extern const u32 g_minvals[4];
|
||||
alignas(16) extern const u32 g_maxvals[4];
|
||||
|
||||
// x86 can use shorter displacement if it fits in an s8, so offset 144 bytes into the cpuRegs
|
||||
// This will allow us to reach r1-r16 with a shorter encoding
|
||||
// TODO: Actually figure out what things are used most often, maybe rearrange the cpuRegs struct, and point at that
|
||||
|
||||
@@ -1,32 +0,0 @@
|
||||
// SPDX-FileCopyrightText: 2002-2026 PCSX2 Dev Team
|
||||
// SPDX-License-Identifier: GPL-3.0+
|
||||
|
||||
#pragma once
|
||||
|
||||
/*********************************************************
|
||||
* Register arithmetic *
|
||||
* Format: OP rd, rs, rt *
|
||||
*********************************************************/
|
||||
|
||||
namespace R5900 {
|
||||
namespace Dynarec {
|
||||
namespace OpcodeImpl {
|
||||
|
||||
void recADD();
|
||||
void recADDU();
|
||||
void recDADD();
|
||||
void recDADDU();
|
||||
void recSUB();
|
||||
void recSUBU();
|
||||
void recDSUB();
|
||||
void recDSUBU();
|
||||
void recAND();
|
||||
void recOR();
|
||||
void recXOR();
|
||||
void recNOR();
|
||||
void recSLT();
|
||||
void recSLTU();
|
||||
|
||||
} // namespace OpcodeImpl
|
||||
} // namespace Dynarec
|
||||
} // namespace R5900
|
||||
@@ -1,27 +0,0 @@
|
||||
// SPDX-FileCopyrightText: 2002-2026 PCSX2 Dev Team
|
||||
// SPDX-License-Identifier: GPL-3.0+
|
||||
|
||||
#pragma once
|
||||
|
||||
/*********************************************************
|
||||
* Arithmetic with immediate operand *
|
||||
* Format: OP rt, rs, immediate *
|
||||
*********************************************************/
|
||||
namespace R5900 {
|
||||
namespace Dynarec {
|
||||
namespace OpcodeImpl {
|
||||
|
||||
void recADDI();
|
||||
void recADDIU();
|
||||
void recDADDI();
|
||||
void recDADDIU();
|
||||
void recANDI();
|
||||
void recORI();
|
||||
void recXORI();
|
||||
|
||||
void recSLTI();
|
||||
void recSLTIU();
|
||||
|
||||
} // namespace OpcodeImpl
|
||||
} // namespace Dynarec
|
||||
} // namespace R5900
|
||||
@@ -1,34 +0,0 @@
|
||||
// SPDX-FileCopyrightText: 2002-2026 PCSX2 Dev Team
|
||||
// SPDX-License-Identifier: GPL-3.0+
|
||||
|
||||
#pragma once
|
||||
|
||||
/*********************************************************
|
||||
* Shift arithmetic with constant shift *
|
||||
* Format: OP rd, rt, sa *
|
||||
*********************************************************/
|
||||
|
||||
namespace R5900 {
|
||||
namespace Dynarec {
|
||||
namespace OpcodeImpl {
|
||||
|
||||
void recBEQ();
|
||||
void recBEQL();
|
||||
void recBNE();
|
||||
void recBNEL();
|
||||
void recBLTZ();
|
||||
void recBLTZL();
|
||||
void recBLTZAL();
|
||||
void recBLTZALL();
|
||||
void recBGTZ();
|
||||
void recBGTZL();
|
||||
void recBLEZ();
|
||||
void recBLEZL();
|
||||
void recBGEZ();
|
||||
void recBGEZL();
|
||||
void recBGEZAL();
|
||||
void recBGEZALL();
|
||||
|
||||
} // namespace OpcodeImpl
|
||||
} // namespace Dynarec
|
||||
} // namespace R5900
|
||||
@@ -1,22 +0,0 @@
|
||||
// SPDX-FileCopyrightText: 2002-2026 PCSX2 Dev Team
|
||||
// SPDX-License-Identifier: GPL-3.0+
|
||||
|
||||
#pragma once
|
||||
|
||||
/*********************************************************
|
||||
* Jump to target *
|
||||
* Format: OP target *
|
||||
*********************************************************/
|
||||
|
||||
namespace R5900 {
|
||||
namespace Dynarec {
|
||||
namespace OpcodeImpl {
|
||||
|
||||
void recJ();
|
||||
void recJAL();
|
||||
void recJR();
|
||||
void recJALR();
|
||||
|
||||
} // namespace OpcodeImpl
|
||||
} // namespace Dynarec
|
||||
} // namespace R5900
|
||||
@@ -1,43 +0,0 @@
|
||||
// SPDX-FileCopyrightText: 2002-2026 PCSX2 Dev Team
|
||||
// SPDX-License-Identifier: GPL-3.0+
|
||||
|
||||
#pragma once
|
||||
|
||||
/*********************************************************
|
||||
* Load and store for GPR *
|
||||
* Format: OP rt, offset(base) *
|
||||
*********************************************************/
|
||||
|
||||
namespace R5900 {
|
||||
namespace Dynarec {
|
||||
namespace OpcodeImpl {
|
||||
|
||||
void recLB();
|
||||
void recLBU();
|
||||
void recLH();
|
||||
void recLHU();
|
||||
void recLW();
|
||||
void recLWU();
|
||||
void recLWL();
|
||||
void recLWR();
|
||||
void recLD();
|
||||
void recLDR();
|
||||
void recLDL();
|
||||
void recLQ();
|
||||
void recSB();
|
||||
void recSH();
|
||||
void recSW();
|
||||
void recSWL();
|
||||
void recSWR();
|
||||
void recSD();
|
||||
void recSDL();
|
||||
void recSDR();
|
||||
void recSQ();
|
||||
void recLWC1();
|
||||
void recSWC1();
|
||||
void recLQC2();
|
||||
void recSQC2();
|
||||
|
||||
} // namespace OpcodeImpl
|
||||
} // namespace Dynarec
|
||||
} // namespace R5900
|
||||
@@ -1,20 +0,0 @@
|
||||
// SPDX-FileCopyrightText: 2002-2026 PCSX2 Dev Team
|
||||
// SPDX-License-Identifier: GPL-3.0+
|
||||
|
||||
#pragma once
|
||||
|
||||
namespace R5900 {
|
||||
namespace Dynarec {
|
||||
namespace OpcodeImpl {
|
||||
|
||||
void recLUI();
|
||||
void recMFLO();
|
||||
void recMFHI();
|
||||
void recMTLO();
|
||||
void recMTHI();
|
||||
void recMOVN();
|
||||
void recMOVZ();
|
||||
|
||||
} // namespace OpcodeImpl
|
||||
} // namespace Dynarec
|
||||
} // namespace R5900
|
||||
@@ -1,22 +0,0 @@
|
||||
// SPDX-FileCopyrightText: 2002-2026 PCSX2 Dev Team
|
||||
// SPDX-License-Identifier: GPL-3.0+
|
||||
|
||||
#pragma once
|
||||
|
||||
/*********************************************************
|
||||
* Register mult/div & Register trap logic *
|
||||
* Format: OP rs, rt *
|
||||
*********************************************************/
|
||||
|
||||
namespace R5900 {
|
||||
namespace Dynarec {
|
||||
namespace OpcodeImpl {
|
||||
|
||||
void recMULT();
|
||||
void recMULTU();
|
||||
void recDIV();
|
||||
void recDIVU();
|
||||
|
||||
} // namespace OpcodeImpl
|
||||
} // namespace Dynarec
|
||||
} // namespace R5900
|
||||
@@ -1,34 +0,0 @@
|
||||
// SPDX-FileCopyrightText: 2002-2026 PCSX2 Dev Team
|
||||
// SPDX-License-Identifier: GPL-3.0+
|
||||
|
||||
#pragma once
|
||||
|
||||
/*********************************************************
|
||||
* Shift arithmetic with constant shift *
|
||||
* Format: OP rd, rt, sa *
|
||||
*********************************************************/
|
||||
|
||||
namespace R5900 {
|
||||
namespace Dynarec {
|
||||
namespace OpcodeImpl {
|
||||
|
||||
void recSLL();
|
||||
void recSRL();
|
||||
void recSRA();
|
||||
void recDSLL();
|
||||
void recDSRL();
|
||||
void recDSRA();
|
||||
void recDSLL32();
|
||||
void recDSRL32();
|
||||
void recDSRA32();
|
||||
|
||||
void recSLLV();
|
||||
void recSRLV();
|
||||
void recSRAV();
|
||||
void recDSLLV();
|
||||
void recDSRLV();
|
||||
void recDSRAV();
|
||||
|
||||
} // namespace OpcodeImpl
|
||||
} // namespace Dynarec
|
||||
} // namespace R5900
|
||||
@@ -4,7 +4,6 @@
|
||||
#include "Common.h"
|
||||
#include "R5900OpcodeTables.h"
|
||||
#include "x86/iR5900.h"
|
||||
#include "x86/iR5900LoadStore.h"
|
||||
|
||||
using namespace x86Emitter;
|
||||
|
||||
|
||||
@@ -7,9 +7,6 @@
|
||||
#include "VU.h"
|
||||
#include "VUmicro.h"
|
||||
#include "vtlb.h"
|
||||
#include "x86/iCOP0.h"
|
||||
#include "x86/iFPU.h"
|
||||
#include "x86/iMMI.h"
|
||||
#include "x86/iR5900.h"
|
||||
|
||||
using namespace x86Emitter;
|
||||
|
||||
Reference in New Issue
Block a user