mirror of https://github.com/PCSX2/pcsx2.git
* Redid the VIFunpacker's wrapped memory address detection (a bit more compact now)
* More VU interpreter cleanups (VU0micro.cpp and VU1micro.cpp are just about ready for permanent removal now). git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3685 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
parent
0d050634ff
commit
a0389c4d18
|
@ -17,12 +17,6 @@
|
|||
|
||||
#include "Pcsx2Defs.h"
|
||||
|
||||
static const s64 _1mb = 0x100000;
|
||||
static const s64 _8mb = _1mb * 8;
|
||||
static const s64 _16mb = _1mb * 16;
|
||||
static const s64 _256mb = _1mb * 256;
|
||||
static const s64 _1gb = _256mb * 4;
|
||||
|
||||
static const u32 BIAS = 2; // Bus is half of the actual ps2 speed
|
||||
static const u32 PS2CLK = 294912000; //hz /* 294.912 mhz */
|
||||
|
||||
|
|
|
@ -78,6 +78,7 @@ typedef int BOOL;
|
|||
#define TRUE 1
|
||||
#define FALSE 0
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Begin Pcsx2 Includes: Add items here that are local to Pcsx2 but stay relatively
|
||||
// unchanged for long periods of time, or happen to be used by almost everything, so they
|
||||
|
@ -100,15 +101,24 @@ typedef int BOOL;
|
|||
|
||||
#include "Config.h"
|
||||
|
||||
typedef void FnType_Void();
|
||||
typedef FnType_Void* Fnptr_Void;
|
||||
|
||||
static const s64 _1mb = 0x100000;
|
||||
static const s64 _8mb = _1mb * 8;
|
||||
static const s64 _16mb = _1mb * 16;
|
||||
static const s64 _256mb = _1mb * 256;
|
||||
static const s64 _1gb = _256mb * 4;
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Compiler/OS specific macros and defines -- Begin Section
|
||||
|
||||
// Linux isn't set up for svn version numbers yet.
|
||||
#ifdef __LINUX__
|
||||
# define SVN_REV 0
|
||||
# define SVN_MODS 0
|
||||
#endif
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Compiler/OS specific macros and defines -- Begin Section
|
||||
|
||||
#if defined(_MSC_VER)
|
||||
|
||||
# define strnicmp _strnicmp
|
||||
|
|
|
@ -37,12 +37,6 @@ void vu0ResetRegs()
|
|||
vif0Regs->stat.VEW = false;
|
||||
}
|
||||
|
||||
void VU0MI_XGKICK() {
|
||||
}
|
||||
|
||||
void VU0MI_XTOP() {
|
||||
}
|
||||
|
||||
void __fastcall vu0ExecMicro(u32 addr) {
|
||||
VUM_LOG("vu0ExecMicro %x", addr);
|
||||
|
||||
|
@ -58,362 +52,3 @@ void __fastcall vu0ExecMicro(u32 addr) {
|
|||
_vuExecMicroDebug(VU0);
|
||||
CpuVU0->ExecuteBlock(1);
|
||||
}
|
||||
|
||||
void VU0unknown() {
|
||||
pxFailDev("Unknown VU micromode opcode called");
|
||||
CPU_LOG("Unknown VU micromode opcode called");
|
||||
}
|
||||
|
||||
void VU0regsunknown(_VURegsNum *VUregsn) {
|
||||
pxFailDev("Unknown VU micromode opcode called");
|
||||
CPU_LOG("Unknown VU micromode opcode called");
|
||||
}
|
||||
|
||||
_vuRegsTables(VU0, VU0regs);
|
||||
|
||||
|
||||
/****************************************/
|
||||
/* VU Micromode Upper instructions */
|
||||
/****************************************/
|
||||
|
||||
void VU0MI_ABS() { _vuABS(&VU0); }
|
||||
void VU0MI_ADD() { _vuADD(&VU0); }
|
||||
void VU0MI_ADDi() { _vuADDi(&VU0); }
|
||||
void VU0MI_ADDq() { _vuADDq(&VU0); }
|
||||
void VU0MI_ADDx() { _vuADDx(&VU0); }
|
||||
void VU0MI_ADDy() { _vuADDy(&VU0); }
|
||||
void VU0MI_ADDz() { _vuADDz(&VU0); }
|
||||
void VU0MI_ADDw() { _vuADDw(&VU0); }
|
||||
void VU0MI_ADDA() { _vuADDA(&VU0); }
|
||||
void VU0MI_ADDAi() { _vuADDAi(&VU0); }
|
||||
void VU0MI_ADDAq() { _vuADDAq(&VU0); }
|
||||
void VU0MI_ADDAx() { _vuADDAx(&VU0); }
|
||||
void VU0MI_ADDAy() { _vuADDAy(&VU0); }
|
||||
void VU0MI_ADDAz() { _vuADDAz(&VU0); }
|
||||
void VU0MI_ADDAw() { _vuADDAw(&VU0); }
|
||||
void VU0MI_SUB() { _vuSUB(&VU0); }
|
||||
void VU0MI_SUBi() { _vuSUBi(&VU0); }
|
||||
void VU0MI_SUBq() { _vuSUBq(&VU0); }
|
||||
void VU0MI_SUBx() { _vuSUBx(&VU0); }
|
||||
void VU0MI_SUBy() { _vuSUBy(&VU0); }
|
||||
void VU0MI_SUBz() { _vuSUBz(&VU0); }
|
||||
void VU0MI_SUBw() { _vuSUBw(&VU0); }
|
||||
void VU0MI_SUBA() { _vuSUBA(&VU0); }
|
||||
void VU0MI_SUBAi() { _vuSUBAi(&VU0); }
|
||||
void VU0MI_SUBAq() { _vuSUBAq(&VU0); }
|
||||
void VU0MI_SUBAx() { _vuSUBAx(&VU0); }
|
||||
void VU0MI_SUBAy() { _vuSUBAy(&VU0); }
|
||||
void VU0MI_SUBAz() { _vuSUBAz(&VU0); }
|
||||
void VU0MI_SUBAw() { _vuSUBAw(&VU0); }
|
||||
void VU0MI_MUL() { _vuMUL(&VU0); }
|
||||
void VU0MI_MULi() { _vuMULi(&VU0); }
|
||||
void VU0MI_MULq() { _vuMULq(&VU0); }
|
||||
void VU0MI_MULx() { _vuMULx(&VU0); }
|
||||
void VU0MI_MULy() { _vuMULy(&VU0); }
|
||||
void VU0MI_MULz() { _vuMULz(&VU0); }
|
||||
void VU0MI_MULw() { _vuMULw(&VU0); }
|
||||
void VU0MI_MULA() { _vuMULA(&VU0); }
|
||||
void VU0MI_MULAi() { _vuMULAi(&VU0); }
|
||||
void VU0MI_MULAq() { _vuMULAq(&VU0); }
|
||||
void VU0MI_MULAx() { _vuMULAx(&VU0); }
|
||||
void VU0MI_MULAy() { _vuMULAy(&VU0); }
|
||||
void VU0MI_MULAz() { _vuMULAz(&VU0); }
|
||||
void VU0MI_MULAw() { _vuMULAw(&VU0); }
|
||||
void VU0MI_MADD() { _vuMADD(&VU0); }
|
||||
void VU0MI_MADDi() { _vuMADDi(&VU0); }
|
||||
void VU0MI_MADDq() { _vuMADDq(&VU0); }
|
||||
void VU0MI_MADDx() { _vuMADDx(&VU0); }
|
||||
void VU0MI_MADDy() { _vuMADDy(&VU0); }
|
||||
void VU0MI_MADDz() { _vuMADDz(&VU0); }
|
||||
void VU0MI_MADDw() { _vuMADDw(&VU0); }
|
||||
void VU0MI_MADDA() { _vuMADDA(&VU0); }
|
||||
void VU0MI_MADDAi() { _vuMADDAi(&VU0); }
|
||||
void VU0MI_MADDAq() { _vuMADDAq(&VU0); }
|
||||
void VU0MI_MADDAx() { _vuMADDAx(&VU0); }
|
||||
void VU0MI_MADDAy() { _vuMADDAy(&VU0); }
|
||||
void VU0MI_MADDAz() { _vuMADDAz(&VU0); }
|
||||
void VU0MI_MADDAw() { _vuMADDAw(&VU0); }
|
||||
void VU0MI_MSUB() { _vuMSUB(&VU0); }
|
||||
void VU0MI_MSUBi() { _vuMSUBi(&VU0); }
|
||||
void VU0MI_MSUBq() { _vuMSUBq(&VU0); }
|
||||
void VU0MI_MSUBx() { _vuMSUBx(&VU0); }
|
||||
void VU0MI_MSUBy() { _vuMSUBy(&VU0); }
|
||||
void VU0MI_MSUBz() { _vuMSUBz(&VU0); }
|
||||
void VU0MI_MSUBw() { _vuMSUBw(&VU0); }
|
||||
void VU0MI_MSUBA() { _vuMSUBA(&VU0); }
|
||||
void VU0MI_MSUBAi() { _vuMSUBAi(&VU0); }
|
||||
void VU0MI_MSUBAq() { _vuMSUBAq(&VU0); }
|
||||
void VU0MI_MSUBAx() { _vuMSUBAx(&VU0); }
|
||||
void VU0MI_MSUBAy() { _vuMSUBAy(&VU0); }
|
||||
void VU0MI_MSUBAz() { _vuMSUBAz(&VU0); }
|
||||
void VU0MI_MSUBAw() { _vuMSUBAw(&VU0); }
|
||||
void VU0MI_MAX() { _vuMAX(&VU0); }
|
||||
void VU0MI_MAXi() { _vuMAXi(&VU0); }
|
||||
void VU0MI_MAXx() { _vuMAXx(&VU0); }
|
||||
void VU0MI_MAXy() { _vuMAXy(&VU0); }
|
||||
void VU0MI_MAXz() { _vuMAXz(&VU0); }
|
||||
void VU0MI_MAXw() { _vuMAXw(&VU0); }
|
||||
void VU0MI_MINI() { _vuMINI(&VU0); }
|
||||
void VU0MI_MINIi() { _vuMINIi(&VU0); }
|
||||
void VU0MI_MINIx() { _vuMINIx(&VU0); }
|
||||
void VU0MI_MINIy() { _vuMINIy(&VU0); }
|
||||
void VU0MI_MINIz() { _vuMINIz(&VU0); }
|
||||
void VU0MI_MINIw() { _vuMINIw(&VU0); }
|
||||
void VU0MI_OPMULA() { _vuOPMULA(&VU0); }
|
||||
void VU0MI_OPMSUB() { _vuOPMSUB(&VU0); }
|
||||
void VU0MI_NOP() { _vuNOP(&VU0); }
|
||||
void VU0MI_FTOI0() { _vuFTOI0(&VU0); }
|
||||
void VU0MI_FTOI4() { _vuFTOI4(&VU0); }
|
||||
void VU0MI_FTOI12() { _vuFTOI12(&VU0); }
|
||||
void VU0MI_FTOI15() { _vuFTOI15(&VU0); }
|
||||
void VU0MI_ITOF0() { _vuITOF0(&VU0); }
|
||||
void VU0MI_ITOF4() { _vuITOF4(&VU0); }
|
||||
void VU0MI_ITOF12() { _vuITOF12(&VU0); }
|
||||
void VU0MI_ITOF15() { _vuITOF15(&VU0); }
|
||||
void VU0MI_CLIP() { _vuCLIP(&VU0); }
|
||||
|
||||
/*****************************************/
|
||||
/* VU Micromode Lower instructions */
|
||||
/*****************************************/
|
||||
|
||||
void VU0MI_DIV() { _vuDIV(&VU0); }
|
||||
void VU0MI_SQRT() { _vuSQRT(&VU0); }
|
||||
void VU0MI_RSQRT() { _vuRSQRT(&VU0); }
|
||||
void VU0MI_IADD() { _vuIADD(&VU0); }
|
||||
void VU0MI_IADDI() { _vuIADDI(&VU0); }
|
||||
void VU0MI_IADDIU() { _vuIADDIU(&VU0); }
|
||||
void VU0MI_IAND() { _vuIAND(&VU0); }
|
||||
void VU0MI_IOR() { _vuIOR(&VU0); }
|
||||
void VU0MI_ISUB() { _vuISUB(&VU0); }
|
||||
void VU0MI_ISUBIU() { _vuISUBIU(&VU0); }
|
||||
void VU0MI_MOVE() { _vuMOVE(&VU0); }
|
||||
void VU0MI_MFIR() { _vuMFIR(&VU0); }
|
||||
void VU0MI_MTIR() { _vuMTIR(&VU0); }
|
||||
void VU0MI_MR32() { _vuMR32(&VU0); }
|
||||
void VU0MI_LQ() { _vuLQ(&VU0); }
|
||||
void VU0MI_LQD() { _vuLQD(&VU0); }
|
||||
void VU0MI_LQI() { _vuLQI(&VU0); }
|
||||
void VU0MI_SQ() { _vuSQ(&VU0); }
|
||||
void VU0MI_SQD() { _vuSQD(&VU0); }
|
||||
void VU0MI_SQI() { _vuSQI(&VU0); }
|
||||
void VU0MI_ILW() { _vuILW(&VU0); }
|
||||
void VU0MI_ISW() { _vuISW(&VU0); }
|
||||
void VU0MI_ILWR() { _vuILWR(&VU0); }
|
||||
void VU0MI_ISWR() { _vuISWR(&VU0); }
|
||||
void VU0MI_RINIT() { _vuRINIT(&VU0); }
|
||||
void VU0MI_RGET() { _vuRGET(&VU0); }
|
||||
void VU0MI_RNEXT() { _vuRNEXT(&VU0); }
|
||||
void VU0MI_RXOR() { _vuRXOR(&VU0); }
|
||||
void VU0MI_WAITQ() { _vuWAITQ(&VU0); }
|
||||
void VU0MI_FSAND() { _vuFSAND(&VU0); }
|
||||
void VU0MI_FSEQ() { _vuFSEQ(&VU0); }
|
||||
void VU0MI_FSOR() { _vuFSOR(&VU0); }
|
||||
void VU0MI_FSSET() { _vuFSSET(&VU0); }
|
||||
void VU0MI_FMAND() { _vuFMAND(&VU0); }
|
||||
void VU0MI_FMEQ() { _vuFMEQ(&VU0); }
|
||||
void VU0MI_FMOR() { _vuFMOR(&VU0); }
|
||||
void VU0MI_FCAND() { _vuFCAND(&VU0); }
|
||||
void VU0MI_FCEQ() { _vuFCEQ(&VU0); }
|
||||
void VU0MI_FCOR() { _vuFCOR(&VU0); }
|
||||
void VU0MI_FCSET() { _vuFCSET(&VU0); }
|
||||
void VU0MI_FCGET() { _vuFCGET(&VU0); }
|
||||
void VU0MI_IBEQ() { _vuIBEQ(&VU0); }
|
||||
void VU0MI_IBGEZ() { _vuIBGEZ(&VU0); }
|
||||
void VU0MI_IBGTZ() { _vuIBGTZ(&VU0); }
|
||||
void VU0MI_IBLTZ() { _vuIBLTZ(&VU0); }
|
||||
void VU0MI_IBLEZ() { _vuIBLEZ(&VU0); }
|
||||
void VU0MI_IBNE() { _vuIBNE(&VU0); }
|
||||
void VU0MI_B() { _vuB(&VU0); }
|
||||
void VU0MI_BAL() { _vuBAL(&VU0); }
|
||||
void VU0MI_JR() { _vuJR(&VU0); }
|
||||
void VU0MI_JALR() { _vuJALR(&VU0); }
|
||||
void VU0MI_MFP() { _vuMFP(&VU0); }
|
||||
void VU0MI_WAITP() { _vuWAITP(&VU0); }
|
||||
void VU0MI_ESADD() { _vuESADD(&VU0); }
|
||||
void VU0MI_ERSADD() { _vuERSADD(&VU0); }
|
||||
void VU0MI_ELENG() { _vuELENG(&VU0); }
|
||||
void VU0MI_ERLENG() { _vuERLENG(&VU0); }
|
||||
void VU0MI_EATANxy() { _vuEATANxy(&VU0); }
|
||||
void VU0MI_EATANxz() { _vuEATANxz(&VU0); }
|
||||
void VU0MI_ESUM() { _vuESUM(&VU0); }
|
||||
void VU0MI_ERCPR() { _vuERCPR(&VU0); }
|
||||
void VU0MI_ESQRT() { _vuESQRT(&VU0); }
|
||||
void VU0MI_ERSQRT() { _vuERSQRT(&VU0); }
|
||||
void VU0MI_ESIN() { _vuESIN(&VU0); }
|
||||
void VU0MI_EATAN() { _vuEATAN(&VU0); }
|
||||
void VU0MI_EEXP() { _vuEEXP(&VU0); }
|
||||
void VU0MI_XITOP() { _vuXITOP(&VU0); }
|
||||
|
||||
/****************************************/
|
||||
/* VU Micromode Upper instructions */
|
||||
/****************************************/
|
||||
|
||||
void VU0regsMI_ABS(_VURegsNum *VUregsn) { _vuRegsABS(&VU0, VUregsn); }
|
||||
void VU0regsMI_ADD(_VURegsNum *VUregsn) { _vuRegsADD(&VU0, VUregsn); }
|
||||
void VU0regsMI_ADDi(_VURegsNum *VUregsn) { _vuRegsADDi(&VU0, VUregsn); }
|
||||
void VU0regsMI_ADDq(_VURegsNum *VUregsn) { _vuRegsADDq(&VU0, VUregsn); }
|
||||
void VU0regsMI_ADDx(_VURegsNum *VUregsn) { _vuRegsADDx(&VU0, VUregsn); }
|
||||
void VU0regsMI_ADDy(_VURegsNum *VUregsn) { _vuRegsADDy(&VU0, VUregsn); }
|
||||
void VU0regsMI_ADDz(_VURegsNum *VUregsn) { _vuRegsADDz(&VU0, VUregsn); }
|
||||
void VU0regsMI_ADDw(_VURegsNum *VUregsn) { _vuRegsADDw(&VU0, VUregsn); }
|
||||
void VU0regsMI_ADDA(_VURegsNum *VUregsn) { _vuRegsADDA(&VU0, VUregsn); }
|
||||
void VU0regsMI_ADDAi(_VURegsNum *VUregsn) { _vuRegsADDAi(&VU0, VUregsn); }
|
||||
void VU0regsMI_ADDAq(_VURegsNum *VUregsn) { _vuRegsADDAq(&VU0, VUregsn); }
|
||||
void VU0regsMI_ADDAx(_VURegsNum *VUregsn) { _vuRegsADDAx(&VU0, VUregsn); }
|
||||
void VU0regsMI_ADDAy(_VURegsNum *VUregsn) { _vuRegsADDAy(&VU0, VUregsn); }
|
||||
void VU0regsMI_ADDAz(_VURegsNum *VUregsn) { _vuRegsADDAz(&VU0, VUregsn); }
|
||||
void VU0regsMI_ADDAw(_VURegsNum *VUregsn) { _vuRegsADDAw(&VU0, VUregsn); }
|
||||
void VU0regsMI_SUB(_VURegsNum *VUregsn) { _vuRegsSUB(&VU0, VUregsn); }
|
||||
void VU0regsMI_SUBi(_VURegsNum *VUregsn) { _vuRegsSUBi(&VU0, VUregsn); }
|
||||
void VU0regsMI_SUBq(_VURegsNum *VUregsn) { _vuRegsSUBq(&VU0, VUregsn); }
|
||||
void VU0regsMI_SUBx(_VURegsNum *VUregsn) { _vuRegsSUBx(&VU0, VUregsn); }
|
||||
void VU0regsMI_SUBy(_VURegsNum *VUregsn) { _vuRegsSUBy(&VU0, VUregsn); }
|
||||
void VU0regsMI_SUBz(_VURegsNum *VUregsn) { _vuRegsSUBz(&VU0, VUregsn); }
|
||||
void VU0regsMI_SUBw(_VURegsNum *VUregsn) { _vuRegsSUBw(&VU0, VUregsn); }
|
||||
void VU0regsMI_SUBA(_VURegsNum *VUregsn) { _vuRegsSUBA(&VU0, VUregsn); }
|
||||
void VU0regsMI_SUBAi(_VURegsNum *VUregsn) { _vuRegsSUBAi(&VU0, VUregsn); }
|
||||
void VU0regsMI_SUBAq(_VURegsNum *VUregsn) { _vuRegsSUBAq(&VU0, VUregsn); }
|
||||
void VU0regsMI_SUBAx(_VURegsNum *VUregsn) { _vuRegsSUBAx(&VU0, VUregsn); }
|
||||
void VU0regsMI_SUBAy(_VURegsNum *VUregsn) { _vuRegsSUBAy(&VU0, VUregsn); }
|
||||
void VU0regsMI_SUBAz(_VURegsNum *VUregsn) { _vuRegsSUBAz(&VU0, VUregsn); }
|
||||
void VU0regsMI_SUBAw(_VURegsNum *VUregsn) { _vuRegsSUBAw(&VU0, VUregsn); }
|
||||
void VU0regsMI_MUL(_VURegsNum *VUregsn) { _vuRegsMUL(&VU0, VUregsn); }
|
||||
void VU0regsMI_MULi(_VURegsNum *VUregsn) { _vuRegsMULi(&VU0, VUregsn); }
|
||||
void VU0regsMI_MULq(_VURegsNum *VUregsn) { _vuRegsMULq(&VU0, VUregsn); }
|
||||
void VU0regsMI_MULx(_VURegsNum *VUregsn) { _vuRegsMULx(&VU0, VUregsn); }
|
||||
void VU0regsMI_MULy(_VURegsNum *VUregsn) { _vuRegsMULy(&VU0, VUregsn); }
|
||||
void VU0regsMI_MULz(_VURegsNum *VUregsn) { _vuRegsMULz(&VU0, VUregsn); }
|
||||
void VU0regsMI_MULw(_VURegsNum *VUregsn) { _vuRegsMULw(&VU0, VUregsn); }
|
||||
void VU0regsMI_MULA(_VURegsNum *VUregsn) { _vuRegsMULA(&VU0, VUregsn); }
|
||||
void VU0regsMI_MULAi(_VURegsNum *VUregsn) { _vuRegsMULAi(&VU0, VUregsn); }
|
||||
void VU0regsMI_MULAq(_VURegsNum *VUregsn) { _vuRegsMULAq(&VU0, VUregsn); }
|
||||
void VU0regsMI_MULAx(_VURegsNum *VUregsn) { _vuRegsMULAx(&VU0, VUregsn); }
|
||||
void VU0regsMI_MULAy(_VURegsNum *VUregsn) { _vuRegsMULAy(&VU0, VUregsn); }
|
||||
void VU0regsMI_MULAz(_VURegsNum *VUregsn) { _vuRegsMULAz(&VU0, VUregsn); }
|
||||
void VU0regsMI_MULAw(_VURegsNum *VUregsn) { _vuRegsMULAw(&VU0, VUregsn); }
|
||||
void VU0regsMI_MADD(_VURegsNum *VUregsn) { _vuRegsMADD(&VU0, VUregsn); }
|
||||
void VU0regsMI_MADDi(_VURegsNum *VUregsn) { _vuRegsMADDi(&VU0, VUregsn); }
|
||||
void VU0regsMI_MADDq(_VURegsNum *VUregsn) { _vuRegsMADDq(&VU0, VUregsn); }
|
||||
void VU0regsMI_MADDx(_VURegsNum *VUregsn) { _vuRegsMADDx(&VU0, VUregsn); }
|
||||
void VU0regsMI_MADDy(_VURegsNum *VUregsn) { _vuRegsMADDy(&VU0, VUregsn); }
|
||||
void VU0regsMI_MADDz(_VURegsNum *VUregsn) { _vuRegsMADDz(&VU0, VUregsn); }
|
||||
void VU0regsMI_MADDw(_VURegsNum *VUregsn) { _vuRegsMADDw(&VU0, VUregsn); }
|
||||
void VU0regsMI_MADDA(_VURegsNum *VUregsn) { _vuRegsMADDA(&VU0, VUregsn); }
|
||||
void VU0regsMI_MADDAi(_VURegsNum *VUregsn) { _vuRegsMADDAi(&VU0, VUregsn); }
|
||||
void VU0regsMI_MADDAq(_VURegsNum *VUregsn) { _vuRegsMADDAq(&VU0, VUregsn); }
|
||||
void VU0regsMI_MADDAx(_VURegsNum *VUregsn) { _vuRegsMADDAx(&VU0, VUregsn); }
|
||||
void VU0regsMI_MADDAy(_VURegsNum *VUregsn) { _vuRegsMADDAy(&VU0, VUregsn); }
|
||||
void VU0regsMI_MADDAz(_VURegsNum *VUregsn) { _vuRegsMADDAz(&VU0, VUregsn); }
|
||||
void VU0regsMI_MADDAw(_VURegsNum *VUregsn) { _vuRegsMADDAw(&VU0, VUregsn); }
|
||||
void VU0regsMI_MSUB(_VURegsNum *VUregsn) { _vuRegsMSUB(&VU0, VUregsn); }
|
||||
void VU0regsMI_MSUBi(_VURegsNum *VUregsn) { _vuRegsMSUBi(&VU0, VUregsn); }
|
||||
void VU0regsMI_MSUBq(_VURegsNum *VUregsn) { _vuRegsMSUBq(&VU0, VUregsn); }
|
||||
void VU0regsMI_MSUBx(_VURegsNum *VUregsn) { _vuRegsMSUBx(&VU0, VUregsn); }
|
||||
void VU0regsMI_MSUBy(_VURegsNum *VUregsn) { _vuRegsMSUBy(&VU0, VUregsn); }
|
||||
void VU0regsMI_MSUBz(_VURegsNum *VUregsn) { _vuRegsMSUBz(&VU0, VUregsn); }
|
||||
void VU0regsMI_MSUBw(_VURegsNum *VUregsn) { _vuRegsMSUBw(&VU0, VUregsn); }
|
||||
void VU0regsMI_MSUBA(_VURegsNum *VUregsn) { _vuRegsMSUBA(&VU0, VUregsn); }
|
||||
void VU0regsMI_MSUBAi(_VURegsNum *VUregsn) { _vuRegsMSUBAi(&VU0, VUregsn); }
|
||||
void VU0regsMI_MSUBAq(_VURegsNum *VUregsn) { _vuRegsMSUBAq(&VU0, VUregsn); }
|
||||
void VU0regsMI_MSUBAx(_VURegsNum *VUregsn) { _vuRegsMSUBAx(&VU0, VUregsn); }
|
||||
void VU0regsMI_MSUBAy(_VURegsNum *VUregsn) { _vuRegsMSUBAy(&VU0, VUregsn); }
|
||||
void VU0regsMI_MSUBAz(_VURegsNum *VUregsn) { _vuRegsMSUBAz(&VU0, VUregsn); }
|
||||
void VU0regsMI_MSUBAw(_VURegsNum *VUregsn) { _vuRegsMSUBAw(&VU0, VUregsn); }
|
||||
void VU0regsMI_MAX(_VURegsNum *VUregsn) { _vuRegsMAX(&VU0, VUregsn); }
|
||||
void VU0regsMI_MAXi(_VURegsNum *VUregsn) { _vuRegsMAXi(&VU0, VUregsn); }
|
||||
void VU0regsMI_MAXx(_VURegsNum *VUregsn) { _vuRegsMAXx(&VU0, VUregsn); }
|
||||
void VU0regsMI_MAXy(_VURegsNum *VUregsn) { _vuRegsMAXy(&VU0, VUregsn); }
|
||||
void VU0regsMI_MAXz(_VURegsNum *VUregsn) { _vuRegsMAXz(&VU0, VUregsn); }
|
||||
void VU0regsMI_MAXw(_VURegsNum *VUregsn) { _vuRegsMAXw(&VU0, VUregsn); }
|
||||
void VU0regsMI_MINI(_VURegsNum *VUregsn) { _vuRegsMINI(&VU0, VUregsn); }
|
||||
void VU0regsMI_MINIi(_VURegsNum *VUregsn) { _vuRegsMINIi(&VU0, VUregsn); }
|
||||
void VU0regsMI_MINIx(_VURegsNum *VUregsn) { _vuRegsMINIx(&VU0, VUregsn); }
|
||||
void VU0regsMI_MINIy(_VURegsNum *VUregsn) { _vuRegsMINIy(&VU0, VUregsn); }
|
||||
void VU0regsMI_MINIz(_VURegsNum *VUregsn) { _vuRegsMINIz(&VU0, VUregsn); }
|
||||
void VU0regsMI_MINIw(_VURegsNum *VUregsn) { _vuRegsMINIw(&VU0, VUregsn); }
|
||||
void VU0regsMI_OPMULA(_VURegsNum *VUregsn) { _vuRegsOPMULA(&VU0, VUregsn); }
|
||||
void VU0regsMI_OPMSUB(_VURegsNum *VUregsn) { _vuRegsOPMSUB(&VU0, VUregsn); }
|
||||
void VU0regsMI_NOP(_VURegsNum *VUregsn) { _vuRegsNOP(&VU0, VUregsn); }
|
||||
void VU0regsMI_FTOI0(_VURegsNum *VUregsn) { _vuRegsFTOI0(&VU0, VUregsn); }
|
||||
void VU0regsMI_FTOI4(_VURegsNum *VUregsn) { _vuRegsFTOI4(&VU0, VUregsn); }
|
||||
void VU0regsMI_FTOI12(_VURegsNum *VUregsn) { _vuRegsFTOI12(&VU0, VUregsn); }
|
||||
void VU0regsMI_FTOI15(_VURegsNum *VUregsn) { _vuRegsFTOI15(&VU0, VUregsn); }
|
||||
void VU0regsMI_ITOF0(_VURegsNum *VUregsn) { _vuRegsITOF0(&VU0, VUregsn); }
|
||||
void VU0regsMI_ITOF4(_VURegsNum *VUregsn) { _vuRegsITOF4(&VU0, VUregsn); }
|
||||
void VU0regsMI_ITOF12(_VURegsNum *VUregsn) { _vuRegsITOF12(&VU0, VUregsn); }
|
||||
void VU0regsMI_ITOF15(_VURegsNum *VUregsn) { _vuRegsITOF15(&VU0, VUregsn); }
|
||||
void VU0regsMI_CLIP(_VURegsNum *VUregsn) { _vuRegsCLIP(&VU0, VUregsn); }
|
||||
|
||||
/*****************************************/
|
||||
/* VU Micromode Lower instructions */
|
||||
/*****************************************/
|
||||
|
||||
void VU0regsMI_DIV(_VURegsNum *VUregsn) { _vuRegsDIV(&VU0, VUregsn); }
|
||||
void VU0regsMI_SQRT(_VURegsNum *VUregsn) { _vuRegsSQRT(&VU0, VUregsn); }
|
||||
void VU0regsMI_RSQRT(_VURegsNum *VUregsn) { _vuRegsRSQRT(&VU0, VUregsn); }
|
||||
void VU0regsMI_IADD(_VURegsNum *VUregsn) { _vuRegsIADD(&VU0, VUregsn); }
|
||||
void VU0regsMI_IADDI(_VURegsNum *VUregsn) { _vuRegsIADDI(&VU0, VUregsn); }
|
||||
void VU0regsMI_IADDIU(_VURegsNum *VUregsn) { _vuRegsIADDIU(&VU0, VUregsn); }
|
||||
void VU0regsMI_IAND(_VURegsNum *VUregsn) { _vuRegsIAND(&VU0, VUregsn); }
|
||||
void VU0regsMI_IOR(_VURegsNum *VUregsn) { _vuRegsIOR(&VU0, VUregsn); }
|
||||
void VU0regsMI_ISUB(_VURegsNum *VUregsn) { _vuRegsISUB(&VU0, VUregsn); }
|
||||
void VU0regsMI_ISUBIU(_VURegsNum *VUregsn) { _vuRegsISUBIU(&VU0, VUregsn); }
|
||||
void VU0regsMI_MOVE(_VURegsNum *VUregsn) { _vuRegsMOVE(&VU0, VUregsn); }
|
||||
void VU0regsMI_MFIR(_VURegsNum *VUregsn) { _vuRegsMFIR(&VU0, VUregsn); }
|
||||
void VU0regsMI_MTIR(_VURegsNum *VUregsn) { _vuRegsMTIR(&VU0, VUregsn); }
|
||||
void VU0regsMI_MR32(_VURegsNum *VUregsn) { _vuRegsMR32(&VU0, VUregsn); }
|
||||
void VU0regsMI_LQ(_VURegsNum *VUregsn) { _vuRegsLQ(&VU0, VUregsn); }
|
||||
void VU0regsMI_LQD(_VURegsNum *VUregsn) { _vuRegsLQD(&VU0, VUregsn); }
|
||||
void VU0regsMI_LQI(_VURegsNum *VUregsn) { _vuRegsLQI(&VU0, VUregsn); }
|
||||
void VU0regsMI_SQ(_VURegsNum *VUregsn) { _vuRegsSQ(&VU0, VUregsn); }
|
||||
void VU0regsMI_SQD(_VURegsNum *VUregsn) { _vuRegsSQD(&VU0, VUregsn); }
|
||||
void VU0regsMI_SQI(_VURegsNum *VUregsn) { _vuRegsSQI(&VU0, VUregsn); }
|
||||
void VU0regsMI_ILW(_VURegsNum *VUregsn) { _vuRegsILW(&VU0, VUregsn); }
|
||||
void VU0regsMI_ISW(_VURegsNum *VUregsn) { _vuRegsISW(&VU0, VUregsn); }
|
||||
void VU0regsMI_ILWR(_VURegsNum *VUregsn) { _vuRegsILWR(&VU0, VUregsn); }
|
||||
void VU0regsMI_ISWR(_VURegsNum *VUregsn) { _vuRegsISWR(&VU0, VUregsn); }
|
||||
void VU0regsMI_RINIT(_VURegsNum *VUregsn) { _vuRegsRINIT(&VU0, VUregsn); }
|
||||
void VU0regsMI_RGET(_VURegsNum *VUregsn) { _vuRegsRGET(&VU0, VUregsn); }
|
||||
void VU0regsMI_RNEXT(_VURegsNum *VUregsn) { _vuRegsRNEXT(&VU0, VUregsn); }
|
||||
void VU0regsMI_RXOR(_VURegsNum *VUregsn) { _vuRegsRXOR(&VU0, VUregsn); }
|
||||
void VU0regsMI_WAITQ(_VURegsNum *VUregsn) { _vuRegsWAITQ(&VU0, VUregsn); }
|
||||
void VU0regsMI_FSAND(_VURegsNum *VUregsn) { _vuRegsFSAND(&VU0, VUregsn); }
|
||||
void VU0regsMI_FSEQ(_VURegsNum *VUregsn) { _vuRegsFSEQ(&VU0, VUregsn); }
|
||||
void VU0regsMI_FSOR(_VURegsNum *VUregsn) { _vuRegsFSOR(&VU0, VUregsn); }
|
||||
void VU0regsMI_FSSET(_VURegsNum *VUregsn) { _vuRegsFSSET(&VU0, VUregsn); }
|
||||
void VU0regsMI_FMAND(_VURegsNum *VUregsn) { _vuRegsFMAND(&VU0, VUregsn); }
|
||||
void VU0regsMI_FMEQ(_VURegsNum *VUregsn) { _vuRegsFMEQ(&VU0, VUregsn); }
|
||||
void VU0regsMI_FMOR(_VURegsNum *VUregsn) { _vuRegsFMOR(&VU0, VUregsn); }
|
||||
void VU0regsMI_FCAND(_VURegsNum *VUregsn) { _vuRegsFCAND(&VU0, VUregsn); }
|
||||
void VU0regsMI_FCEQ(_VURegsNum *VUregsn) { _vuRegsFCEQ(&VU0, VUregsn); }
|
||||
void VU0regsMI_FCOR(_VURegsNum *VUregsn) { _vuRegsFCOR(&VU0, VUregsn); }
|
||||
void VU0regsMI_FCSET(_VURegsNum *VUregsn) { _vuRegsFCSET(&VU0, VUregsn); }
|
||||
void VU0regsMI_FCGET(_VURegsNum *VUregsn) { _vuRegsFCGET(&VU0, VUregsn); }
|
||||
void VU0regsMI_IBEQ(_VURegsNum *VUregsn) { _vuRegsIBEQ(&VU0, VUregsn); }
|
||||
void VU0regsMI_IBGEZ(_VURegsNum *VUregsn) { _vuRegsIBGEZ(&VU0, VUregsn); }
|
||||
void VU0regsMI_IBGTZ(_VURegsNum *VUregsn) { _vuRegsIBGTZ(&VU0, VUregsn); }
|
||||
void VU0regsMI_IBLTZ(_VURegsNum *VUregsn) { _vuRegsIBLTZ(&VU0, VUregsn); }
|
||||
void VU0regsMI_IBLEZ(_VURegsNum *VUregsn) { _vuRegsIBLEZ(&VU0, VUregsn); }
|
||||
void VU0regsMI_IBNE(_VURegsNum *VUregsn) { _vuRegsIBNE(&VU0, VUregsn); }
|
||||
void VU0regsMI_B(_VURegsNum *VUregsn) { _vuRegsB(&VU0, VUregsn); }
|
||||
void VU0regsMI_BAL(_VURegsNum *VUregsn) { _vuRegsBAL(&VU0, VUregsn); }
|
||||
void VU0regsMI_JR(_VURegsNum *VUregsn) { _vuRegsJR(&VU0, VUregsn); }
|
||||
void VU0regsMI_JALR(_VURegsNum *VUregsn) { _vuRegsJALR(&VU0, VUregsn); }
|
||||
void VU0regsMI_MFP(_VURegsNum *VUregsn) { _vuRegsMFP(&VU0, VUregsn); }
|
||||
void VU0regsMI_WAITP(_VURegsNum *VUregsn) { _vuRegsWAITP(&VU0, VUregsn); }
|
||||
void VU0regsMI_ESADD(_VURegsNum *VUregsn) { _vuRegsESADD(&VU0, VUregsn); }
|
||||
void VU0regsMI_ERSADD(_VURegsNum *VUregsn) { _vuRegsERSADD(&VU0, VUregsn); }
|
||||
void VU0regsMI_ELENG(_VURegsNum *VUregsn) { _vuRegsELENG(&VU0, VUregsn); }
|
||||
void VU0regsMI_ERLENG(_VURegsNum *VUregsn) { _vuRegsERLENG(&VU0, VUregsn); }
|
||||
void VU0regsMI_EATANxy(_VURegsNum *VUregsn) { _vuRegsEATANxy(&VU0, VUregsn); }
|
||||
void VU0regsMI_EATANxz(_VURegsNum *VUregsn) { _vuRegsEATANxz(&VU0, VUregsn); }
|
||||
void VU0regsMI_ESUM(_VURegsNum *VUregsn) { _vuRegsESUM(&VU0, VUregsn); }
|
||||
void VU0regsMI_ERCPR(_VURegsNum *VUregsn) { _vuRegsERCPR(&VU0, VUregsn); }
|
||||
void VU0regsMI_ESQRT(_VURegsNum *VUregsn) { _vuRegsESQRT(&VU0, VUregsn); }
|
||||
void VU0regsMI_ERSQRT(_VURegsNum *VUregsn) { _vuRegsERSQRT(&VU0, VUregsn); }
|
||||
void VU0regsMI_ESIN(_VURegsNum *VUregsn) { _vuRegsESIN(&VU0, VUregsn); }
|
||||
void VU0regsMI_EATAN(_VURegsNum *VUregsn) { _vuRegsEATAN(&VU0, VUregsn); }
|
||||
void VU0regsMI_EEXP(_VURegsNum *VUregsn) { _vuRegsEEXP(&VU0, VUregsn); }
|
||||
void VU0regsMI_XITOP(_VURegsNum *VUregsn) { _vuRegsXITOP(&VU0, VUregsn); }
|
||||
void VU0regsMI_XGKICK(_VURegsNum *VUregsn) { _vuRegsXGKICK(&VU0, VUregsn); }
|
||||
void VU0regsMI_XTOP(_VURegsNum *VUregsn) { _vuRegsXTOP(&VU0, VUregsn); }
|
||||
|
|
|
@ -21,15 +21,13 @@
|
|||
|
||||
extern void _vuFlushAll(VURegs* VU);
|
||||
|
||||
_vuTables(VU0, VU0);
|
||||
|
||||
void _vu0ExecUpper(VURegs* VU, u32 *ptr) {
|
||||
static void _vu0ExecUpper(VURegs* VU, u32 *ptr) {
|
||||
VU->code = ptr[1];
|
||||
IdebugUPPER(VU0);
|
||||
VU0_UPPER_OPCODE[VU->code & 0x3f]();
|
||||
}
|
||||
|
||||
void _vu0ExecLower(VURegs* VU, u32 *ptr) {
|
||||
static void _vu0ExecLower(VURegs* VU, u32 *ptr) {
|
||||
VU->code = ptr[0];
|
||||
IdebugLOWER(VU0);
|
||||
VU0_LOWER_OPCODE[VU->code >> 25]();
|
||||
|
|
|
@ -64,367 +64,3 @@ void __fastcall vu1ExecMicro(u32 addr)
|
|||
|
||||
CpuVU1->Execute(vu1RunCycles);
|
||||
}
|
||||
|
||||
_vuRegsTables(VU1, VU1regs);
|
||||
|
||||
void VU1unknown() {
|
||||
//assert(0);
|
||||
CPU_LOG("Unknown VU micromode opcode called");
|
||||
}
|
||||
|
||||
void VU1regsunknown(_VURegsNum *VUregsn) {
|
||||
//assert(0);
|
||||
CPU_LOG("Unknown VU micromode opcode called");
|
||||
}
|
||||
|
||||
|
||||
|
||||
/****************************************/
|
||||
/* VU Micromode Upper instructions */
|
||||
/****************************************/
|
||||
|
||||
void VU1MI_ABS() { _vuABS(&VU1); }
|
||||
void VU1MI_ADD() { _vuADD(&VU1); }
|
||||
void VU1MI_ADDi() { _vuADDi(&VU1); }
|
||||
void VU1MI_ADDq() { _vuADDq(&VU1); }
|
||||
void VU1MI_ADDx() { _vuADDx(&VU1); }
|
||||
void VU1MI_ADDy() { _vuADDy(&VU1); }
|
||||
void VU1MI_ADDz() { _vuADDz(&VU1); }
|
||||
void VU1MI_ADDw() { _vuADDw(&VU1); }
|
||||
void VU1MI_ADDA() { _vuADDA(&VU1); }
|
||||
void VU1MI_ADDAi() { _vuADDAi(&VU1); }
|
||||
void VU1MI_ADDAq() { _vuADDAq(&VU1); }
|
||||
void VU1MI_ADDAx() { _vuADDAx(&VU1); }
|
||||
void VU1MI_ADDAy() { _vuADDAy(&VU1); }
|
||||
void VU1MI_ADDAz() { _vuADDAz(&VU1); }
|
||||
void VU1MI_ADDAw() { _vuADDAw(&VU1); }
|
||||
void VU1MI_SUB() { _vuSUB(&VU1); }
|
||||
void VU1MI_SUBi() { _vuSUBi(&VU1); }
|
||||
void VU1MI_SUBq() { _vuSUBq(&VU1); }
|
||||
void VU1MI_SUBx() { _vuSUBx(&VU1); }
|
||||
void VU1MI_SUBy() { _vuSUBy(&VU1); }
|
||||
void VU1MI_SUBz() { _vuSUBz(&VU1); }
|
||||
void VU1MI_SUBw() { _vuSUBw(&VU1); }
|
||||
void VU1MI_SUBA() { _vuSUBA(&VU1); }
|
||||
void VU1MI_SUBAi() { _vuSUBAi(&VU1); }
|
||||
void VU1MI_SUBAq() { _vuSUBAq(&VU1); }
|
||||
void VU1MI_SUBAx() { _vuSUBAx(&VU1); }
|
||||
void VU1MI_SUBAy() { _vuSUBAy(&VU1); }
|
||||
void VU1MI_SUBAz() { _vuSUBAz(&VU1); }
|
||||
void VU1MI_SUBAw() { _vuSUBAw(&VU1); }
|
||||
void VU1MI_MUL() { _vuMUL(&VU1); }
|
||||
void VU1MI_MULi() { _vuMULi(&VU1); }
|
||||
void VU1MI_MULq() { _vuMULq(&VU1); }
|
||||
void VU1MI_MULx() { _vuMULx(&VU1); }
|
||||
void VU1MI_MULy() { _vuMULy(&VU1); }
|
||||
void VU1MI_MULz() { _vuMULz(&VU1); }
|
||||
void VU1MI_MULw() { _vuMULw(&VU1); }
|
||||
void VU1MI_MULA() { _vuMULA(&VU1); }
|
||||
void VU1MI_MULAi() { _vuMULAi(&VU1); }
|
||||
void VU1MI_MULAq() { _vuMULAq(&VU1); }
|
||||
void VU1MI_MULAx() { _vuMULAx(&VU1); }
|
||||
void VU1MI_MULAy() { _vuMULAy(&VU1); }
|
||||
void VU1MI_MULAz() { _vuMULAz(&VU1); }
|
||||
void VU1MI_MULAw() { _vuMULAw(&VU1); }
|
||||
void VU1MI_MADD() { _vuMADD(&VU1); }
|
||||
void VU1MI_MADDi() { _vuMADDi(&VU1); }
|
||||
void VU1MI_MADDq() { _vuMADDq(&VU1); }
|
||||
void VU1MI_MADDx() { _vuMADDx(&VU1); }
|
||||
void VU1MI_MADDy() { _vuMADDy(&VU1); }
|
||||
void VU1MI_MADDz() { _vuMADDz(&VU1); }
|
||||
void VU1MI_MADDw() { _vuMADDw(&VU1); }
|
||||
void VU1MI_MADDA() { _vuMADDA(&VU1); }
|
||||
void VU1MI_MADDAi() { _vuMADDAi(&VU1); }
|
||||
void VU1MI_MADDAq() { _vuMADDAq(&VU1); }
|
||||
void VU1MI_MADDAx() { _vuMADDAx(&VU1); }
|
||||
void VU1MI_MADDAy() { _vuMADDAy(&VU1); }
|
||||
void VU1MI_MADDAz() { _vuMADDAz(&VU1); }
|
||||
void VU1MI_MADDAw() { _vuMADDAw(&VU1); }
|
||||
void VU1MI_MSUB() { _vuMSUB(&VU1); }
|
||||
void VU1MI_MSUBi() { _vuMSUBi(&VU1); }
|
||||
void VU1MI_MSUBq() { _vuMSUBq(&VU1); }
|
||||
void VU1MI_MSUBx() { _vuMSUBx(&VU1); }
|
||||
void VU1MI_MSUBy() { _vuMSUBy(&VU1); }
|
||||
void VU1MI_MSUBz() { _vuMSUBz(&VU1); }
|
||||
void VU1MI_MSUBw() { _vuMSUBw(&VU1); }
|
||||
void VU1MI_MSUBA() { _vuMSUBA(&VU1); }
|
||||
void VU1MI_MSUBAi() { _vuMSUBAi(&VU1); }
|
||||
void VU1MI_MSUBAq() { _vuMSUBAq(&VU1); }
|
||||
void VU1MI_MSUBAx() { _vuMSUBAx(&VU1); }
|
||||
void VU1MI_MSUBAy() { _vuMSUBAy(&VU1); }
|
||||
void VU1MI_MSUBAz() { _vuMSUBAz(&VU1); }
|
||||
void VU1MI_MSUBAw() { _vuMSUBAw(&VU1); }
|
||||
void VU1MI_MAX() { _vuMAX(&VU1); }
|
||||
void VU1MI_MAXi() { _vuMAXi(&VU1); }
|
||||
void VU1MI_MAXx() { _vuMAXx(&VU1); }
|
||||
void VU1MI_MAXy() { _vuMAXy(&VU1); }
|
||||
void VU1MI_MAXz() { _vuMAXz(&VU1); }
|
||||
void VU1MI_MAXw() { _vuMAXw(&VU1); }
|
||||
void VU1MI_MINI() { _vuMINI(&VU1); }
|
||||
void VU1MI_MINIi() { _vuMINIi(&VU1); }
|
||||
void VU1MI_MINIx() { _vuMINIx(&VU1); }
|
||||
void VU1MI_MINIy() { _vuMINIy(&VU1); }
|
||||
void VU1MI_MINIz() { _vuMINIz(&VU1); }
|
||||
void VU1MI_MINIw() { _vuMINIw(&VU1); }
|
||||
void VU1MI_OPMULA() { _vuOPMULA(&VU1); }
|
||||
void VU1MI_OPMSUB() { _vuOPMSUB(&VU1); }
|
||||
void VU1MI_NOP() { _vuNOP(&VU1); }
|
||||
void VU1MI_FTOI0() { _vuFTOI0(&VU1); }
|
||||
void VU1MI_FTOI4() { _vuFTOI4(&VU1); }
|
||||
void VU1MI_FTOI12() { _vuFTOI12(&VU1); }
|
||||
void VU1MI_FTOI15() { _vuFTOI15(&VU1); }
|
||||
void VU1MI_ITOF0() { _vuITOF0(&VU1); }
|
||||
void VU1MI_ITOF4() { _vuITOF4(&VU1); }
|
||||
void VU1MI_ITOF12() { _vuITOF12(&VU1); }
|
||||
void VU1MI_ITOF15() { _vuITOF15(&VU1); }
|
||||
void VU1MI_CLIP() { _vuCLIP(&VU1); }
|
||||
|
||||
/*****************************************/
|
||||
/* VU Micromode Lower instructions */
|
||||
/*****************************************/
|
||||
|
||||
void VU1MI_DIV() { _vuDIV(&VU1); }
|
||||
void VU1MI_SQRT() { _vuSQRT(&VU1); }
|
||||
void VU1MI_RSQRT() { _vuRSQRT(&VU1); }
|
||||
void VU1MI_IADD() { _vuIADD(&VU1); }
|
||||
void VU1MI_IADDI() { _vuIADDI(&VU1); }
|
||||
void VU1MI_IADDIU() { _vuIADDIU(&VU1); }
|
||||
void VU1MI_IAND() { _vuIAND(&VU1); }
|
||||
void VU1MI_IOR() { _vuIOR(&VU1); }
|
||||
void VU1MI_ISUB() { _vuISUB(&VU1); }
|
||||
void VU1MI_ISUBIU() { _vuISUBIU(&VU1); }
|
||||
void VU1MI_MOVE() { _vuMOVE(&VU1); }
|
||||
void VU1MI_MFIR() { _vuMFIR(&VU1); }
|
||||
void VU1MI_MTIR() { _vuMTIR(&VU1); }
|
||||
void VU1MI_MR32() { _vuMR32(&VU1); }
|
||||
void VU1MI_LQ() { _vuLQ(&VU1); }
|
||||
void VU1MI_LQD() { _vuLQD(&VU1); }
|
||||
void VU1MI_LQI() { _vuLQI(&VU1); }
|
||||
void VU1MI_SQ() { _vuSQ(&VU1); }
|
||||
void VU1MI_SQD() { _vuSQD(&VU1); }
|
||||
void VU1MI_SQI() { _vuSQI(&VU1); }
|
||||
void VU1MI_ILW() { _vuILW(&VU1); }
|
||||
void VU1MI_ISW() { _vuISW(&VU1); }
|
||||
void VU1MI_ILWR() { _vuILWR(&VU1); }
|
||||
void VU1MI_ISWR() { _vuISWR(&VU1); }
|
||||
void VU1MI_RINIT() { _vuRINIT(&VU1); }
|
||||
void VU1MI_RGET() { _vuRGET(&VU1); }
|
||||
void VU1MI_RNEXT() { _vuRNEXT(&VU1); }
|
||||
void VU1MI_RXOR() { _vuRXOR(&VU1); }
|
||||
void VU1MI_WAITQ() { _vuWAITQ(&VU1); }
|
||||
void VU1MI_FSAND() { _vuFSAND(&VU1); }
|
||||
void VU1MI_FSEQ() { _vuFSEQ(&VU1); }
|
||||
void VU1MI_FSOR() { _vuFSOR(&VU1); }
|
||||
void VU1MI_FSSET() { _vuFSSET(&VU1); }
|
||||
void VU1MI_FMAND() { _vuFMAND(&VU1); }
|
||||
void VU1MI_FMEQ() { _vuFMEQ(&VU1); }
|
||||
void VU1MI_FMOR() { _vuFMOR(&VU1); }
|
||||
void VU1MI_FCAND() { _vuFCAND(&VU1); }
|
||||
void VU1MI_FCEQ() { _vuFCEQ(&VU1); }
|
||||
void VU1MI_FCOR() { _vuFCOR(&VU1); }
|
||||
void VU1MI_FCSET() { _vuFCSET(&VU1); }
|
||||
void VU1MI_FCGET() { _vuFCGET(&VU1); }
|
||||
void VU1MI_IBEQ() { _vuIBEQ(&VU1); }
|
||||
void VU1MI_IBGEZ() { _vuIBGEZ(&VU1); }
|
||||
void VU1MI_IBGTZ() { _vuIBGTZ(&VU1); }
|
||||
void VU1MI_IBLTZ() { _vuIBLTZ(&VU1); }
|
||||
void VU1MI_IBLEZ() { _vuIBLEZ(&VU1); }
|
||||
void VU1MI_IBNE() { _vuIBNE(&VU1); }
|
||||
void VU1MI_B() { _vuB(&VU1); }
|
||||
void VU1MI_BAL() { _vuBAL(&VU1); }
|
||||
void VU1MI_JR() { _vuJR(&VU1); }
|
||||
void VU1MI_JALR() { _vuJALR(&VU1); }
|
||||
void VU1MI_MFP() { _vuMFP(&VU1); }
|
||||
void VU1MI_WAITP() { _vuWAITP(&VU1); }
|
||||
void VU1MI_ESADD() { _vuESADD(&VU1); }
|
||||
void VU1MI_ERSADD() { _vuERSADD(&VU1); }
|
||||
void VU1MI_ELENG() { _vuELENG(&VU1); }
|
||||
void VU1MI_ERLENG() { _vuERLENG(&VU1); }
|
||||
void VU1MI_EATANxy() { _vuEATANxy(&VU1); }
|
||||
void VU1MI_EATANxz() { _vuEATANxz(&VU1); }
|
||||
void VU1MI_ESUM() { _vuESUM(&VU1); }
|
||||
void VU1MI_ERCPR() { _vuERCPR(&VU1); }
|
||||
void VU1MI_ESQRT() { _vuESQRT(&VU1); }
|
||||
void VU1MI_ERSQRT() { _vuERSQRT(&VU1); }
|
||||
void VU1MI_ESIN() { _vuESIN(&VU1); }
|
||||
void VU1MI_EATAN() { _vuEATAN(&VU1); }
|
||||
void VU1MI_EEXP() { _vuEEXP(&VU1); }
|
||||
void VU1MI_XITOP() { _vuXITOP(&VU1); }
|
||||
void VU1MI_XGKICK() { _vuXGKICK(&VU1); }
|
||||
void VU1MI_XTOP() { _vuXTOP(&VU1); }
|
||||
|
||||
|
||||
|
||||
/****************************************/
|
||||
/* VU Micromode Upper instructions */
|
||||
/****************************************/
|
||||
|
||||
void VU1regsMI_ABS(_VURegsNum *VUregsn) { _vuRegsABS(&VU1, VUregsn); }
|
||||
void VU1regsMI_ADD(_VURegsNum *VUregsn) { _vuRegsADD(&VU1, VUregsn); }
|
||||
void VU1regsMI_ADDi(_VURegsNum *VUregsn) { _vuRegsADDi(&VU1, VUregsn); }
|
||||
void VU1regsMI_ADDq(_VURegsNum *VUregsn) { _vuRegsADDq(&VU1, VUregsn); }
|
||||
void VU1regsMI_ADDx(_VURegsNum *VUregsn) { _vuRegsADDx(&VU1, VUregsn); }
|
||||
void VU1regsMI_ADDy(_VURegsNum *VUregsn) { _vuRegsADDy(&VU1, VUregsn); }
|
||||
void VU1regsMI_ADDz(_VURegsNum *VUregsn) { _vuRegsADDz(&VU1, VUregsn); }
|
||||
void VU1regsMI_ADDw(_VURegsNum *VUregsn) { _vuRegsADDw(&VU1, VUregsn); }
|
||||
void VU1regsMI_ADDA(_VURegsNum *VUregsn) { _vuRegsADDA(&VU1, VUregsn); }
|
||||
void VU1regsMI_ADDAi(_VURegsNum *VUregsn) { _vuRegsADDAi(&VU1, VUregsn); }
|
||||
void VU1regsMI_ADDAq(_VURegsNum *VUregsn) { _vuRegsADDAq(&VU1, VUregsn); }
|
||||
void VU1regsMI_ADDAx(_VURegsNum *VUregsn) { _vuRegsADDAx(&VU1, VUregsn); }
|
||||
void VU1regsMI_ADDAy(_VURegsNum *VUregsn) { _vuRegsADDAy(&VU1, VUregsn); }
|
||||
void VU1regsMI_ADDAz(_VURegsNum *VUregsn) { _vuRegsADDAz(&VU1, VUregsn); }
|
||||
void VU1regsMI_ADDAw(_VURegsNum *VUregsn) { _vuRegsADDAw(&VU1, VUregsn); }
|
||||
void VU1regsMI_SUB(_VURegsNum *VUregsn) { _vuRegsSUB(&VU1, VUregsn); }
|
||||
void VU1regsMI_SUBi(_VURegsNum *VUregsn) { _vuRegsSUBi(&VU1, VUregsn); }
|
||||
void VU1regsMI_SUBq(_VURegsNum *VUregsn) { _vuRegsSUBq(&VU1, VUregsn); }
|
||||
void VU1regsMI_SUBx(_VURegsNum *VUregsn) { _vuRegsSUBx(&VU1, VUregsn); }
|
||||
void VU1regsMI_SUBy(_VURegsNum *VUregsn) { _vuRegsSUBy(&VU1, VUregsn); }
|
||||
void VU1regsMI_SUBz(_VURegsNum *VUregsn) { _vuRegsSUBz(&VU1, VUregsn); }
|
||||
void VU1regsMI_SUBw(_VURegsNum *VUregsn) { _vuRegsSUBw(&VU1, VUregsn); }
|
||||
void VU1regsMI_SUBA(_VURegsNum *VUregsn) { _vuRegsSUBA(&VU1, VUregsn); }
|
||||
void VU1regsMI_SUBAi(_VURegsNum *VUregsn) { _vuRegsSUBAi(&VU1, VUregsn); }
|
||||
void VU1regsMI_SUBAq(_VURegsNum *VUregsn) { _vuRegsSUBAq(&VU1, VUregsn); }
|
||||
void VU1regsMI_SUBAx(_VURegsNum *VUregsn) { _vuRegsSUBAx(&VU1, VUregsn); }
|
||||
void VU1regsMI_SUBAy(_VURegsNum *VUregsn) { _vuRegsSUBAy(&VU1, VUregsn); }
|
||||
void VU1regsMI_SUBAz(_VURegsNum *VUregsn) { _vuRegsSUBAz(&VU1, VUregsn); }
|
||||
void VU1regsMI_SUBAw(_VURegsNum *VUregsn) { _vuRegsSUBAw(&VU1, VUregsn); }
|
||||
void VU1regsMI_MUL(_VURegsNum *VUregsn) { _vuRegsMUL(&VU1, VUregsn); }
|
||||
void VU1regsMI_MULi(_VURegsNum *VUregsn) { _vuRegsMULi(&VU1, VUregsn); }
|
||||
void VU1regsMI_MULq(_VURegsNum *VUregsn) { _vuRegsMULq(&VU1, VUregsn); }
|
||||
void VU1regsMI_MULx(_VURegsNum *VUregsn) { _vuRegsMULx(&VU1, VUregsn); }
|
||||
void VU1regsMI_MULy(_VURegsNum *VUregsn) { _vuRegsMULy(&VU1, VUregsn); }
|
||||
void VU1regsMI_MULz(_VURegsNum *VUregsn) { _vuRegsMULz(&VU1, VUregsn); }
|
||||
void VU1regsMI_MULw(_VURegsNum *VUregsn) { _vuRegsMULw(&VU1, VUregsn); }
|
||||
void VU1regsMI_MULA(_VURegsNum *VUregsn) { _vuRegsMULA(&VU1, VUregsn); }
|
||||
void VU1regsMI_MULAi(_VURegsNum *VUregsn) { _vuRegsMULAi(&VU1, VUregsn); }
|
||||
void VU1regsMI_MULAq(_VURegsNum *VUregsn) { _vuRegsMULAq(&VU1, VUregsn); }
|
||||
void VU1regsMI_MULAx(_VURegsNum *VUregsn) { _vuRegsMULAx(&VU1, VUregsn); }
|
||||
void VU1regsMI_MULAy(_VURegsNum *VUregsn) { _vuRegsMULAy(&VU1, VUregsn); }
|
||||
void VU1regsMI_MULAz(_VURegsNum *VUregsn) { _vuRegsMULAz(&VU1, VUregsn); }
|
||||
void VU1regsMI_MULAw(_VURegsNum *VUregsn) { _vuRegsMULAw(&VU1, VUregsn); }
|
||||
void VU1regsMI_MADD(_VURegsNum *VUregsn) { _vuRegsMADD(&VU1, VUregsn); }
|
||||
void VU1regsMI_MADDi(_VURegsNum *VUregsn) { _vuRegsMADDi(&VU1, VUregsn); }
|
||||
void VU1regsMI_MADDq(_VURegsNum *VUregsn) { _vuRegsMADDq(&VU1, VUregsn); }
|
||||
void VU1regsMI_MADDx(_VURegsNum *VUregsn) { _vuRegsMADDx(&VU1, VUregsn); }
|
||||
void VU1regsMI_MADDy(_VURegsNum *VUregsn) { _vuRegsMADDy(&VU1, VUregsn); }
|
||||
void VU1regsMI_MADDz(_VURegsNum *VUregsn) { _vuRegsMADDz(&VU1, VUregsn); }
|
||||
void VU1regsMI_MADDw(_VURegsNum *VUregsn) { _vuRegsMADDw(&VU1, VUregsn); }
|
||||
void VU1regsMI_MADDA(_VURegsNum *VUregsn) { _vuRegsMADDA(&VU1, VUregsn); }
|
||||
void VU1regsMI_MADDAi(_VURegsNum *VUregsn) { _vuRegsMADDAi(&VU1, VUregsn); }
|
||||
void VU1regsMI_MADDAq(_VURegsNum *VUregsn) { _vuRegsMADDAq(&VU1, VUregsn); }
|
||||
void VU1regsMI_MADDAx(_VURegsNum *VUregsn) { _vuRegsMADDAx(&VU1, VUregsn); }
|
||||
void VU1regsMI_MADDAy(_VURegsNum *VUregsn) { _vuRegsMADDAy(&VU1, VUregsn); }
|
||||
void VU1regsMI_MADDAz(_VURegsNum *VUregsn) { _vuRegsMADDAz(&VU1, VUregsn); }
|
||||
void VU1regsMI_MADDAw(_VURegsNum *VUregsn) { _vuRegsMADDAw(&VU1, VUregsn); }
|
||||
void VU1regsMI_MSUB(_VURegsNum *VUregsn) { _vuRegsMSUB(&VU1, VUregsn); }
|
||||
void VU1regsMI_MSUBi(_VURegsNum *VUregsn) { _vuRegsMSUBi(&VU1, VUregsn); }
|
||||
void VU1regsMI_MSUBq(_VURegsNum *VUregsn) { _vuRegsMSUBq(&VU1, VUregsn); }
|
||||
void VU1regsMI_MSUBx(_VURegsNum *VUregsn) { _vuRegsMSUBx(&VU1, VUregsn); }
|
||||
void VU1regsMI_MSUBy(_VURegsNum *VUregsn) { _vuRegsMSUBy(&VU1, VUregsn); }
|
||||
void VU1regsMI_MSUBz(_VURegsNum *VUregsn) { _vuRegsMSUBz(&VU1, VUregsn); }
|
||||
void VU1regsMI_MSUBw(_VURegsNum *VUregsn) { _vuRegsMSUBw(&VU1, VUregsn); }
|
||||
void VU1regsMI_MSUBA(_VURegsNum *VUregsn) { _vuRegsMSUBA(&VU1, VUregsn); }
|
||||
void VU1regsMI_MSUBAi(_VURegsNum *VUregsn) { _vuRegsMSUBAi(&VU1, VUregsn); }
|
||||
void VU1regsMI_MSUBAq(_VURegsNum *VUregsn) { _vuRegsMSUBAq(&VU1, VUregsn); }
|
||||
void VU1regsMI_MSUBAx(_VURegsNum *VUregsn) { _vuRegsMSUBAx(&VU1, VUregsn); }
|
||||
void VU1regsMI_MSUBAy(_VURegsNum *VUregsn) { _vuRegsMSUBAy(&VU1, VUregsn); }
|
||||
void VU1regsMI_MSUBAz(_VURegsNum *VUregsn) { _vuRegsMSUBAz(&VU1, VUregsn); }
|
||||
void VU1regsMI_MSUBAw(_VURegsNum *VUregsn) { _vuRegsMSUBAw(&VU1, VUregsn); }
|
||||
void VU1regsMI_MAX(_VURegsNum *VUregsn) { _vuRegsMAX(&VU1, VUregsn); }
|
||||
void VU1regsMI_MAXi(_VURegsNum *VUregsn) { _vuRegsMAXi(&VU1, VUregsn); }
|
||||
void VU1regsMI_MAXx(_VURegsNum *VUregsn) { _vuRegsMAXx(&VU1, VUregsn); }
|
||||
void VU1regsMI_MAXy(_VURegsNum *VUregsn) { _vuRegsMAXy(&VU1, VUregsn); }
|
||||
void VU1regsMI_MAXz(_VURegsNum *VUregsn) { _vuRegsMAXz(&VU1, VUregsn); }
|
||||
void VU1regsMI_MAXw(_VURegsNum *VUregsn) { _vuRegsMAXw(&VU1, VUregsn); }
|
||||
void VU1regsMI_MINI(_VURegsNum *VUregsn) { _vuRegsMINI(&VU1, VUregsn); }
|
||||
void VU1regsMI_MINIi(_VURegsNum *VUregsn) { _vuRegsMINIi(&VU1, VUregsn); }
|
||||
void VU1regsMI_MINIx(_VURegsNum *VUregsn) { _vuRegsMINIx(&VU1, VUregsn); }
|
||||
void VU1regsMI_MINIy(_VURegsNum *VUregsn) { _vuRegsMINIy(&VU1, VUregsn); }
|
||||
void VU1regsMI_MINIz(_VURegsNum *VUregsn) { _vuRegsMINIz(&VU1, VUregsn); }
|
||||
void VU1regsMI_MINIw(_VURegsNum *VUregsn) { _vuRegsMINIw(&VU1, VUregsn); }
|
||||
void VU1regsMI_OPMULA(_VURegsNum *VUregsn) { _vuRegsOPMULA(&VU1, VUregsn); }
|
||||
void VU1regsMI_OPMSUB(_VURegsNum *VUregsn) { _vuRegsOPMSUB(&VU1, VUregsn); }
|
||||
void VU1regsMI_NOP(_VURegsNum *VUregsn) { _vuRegsNOP(&VU1, VUregsn); }
|
||||
void VU1regsMI_FTOI0(_VURegsNum *VUregsn) { _vuRegsFTOI0(&VU1, VUregsn); }
|
||||
void VU1regsMI_FTOI4(_VURegsNum *VUregsn) { _vuRegsFTOI4(&VU1, VUregsn); }
|
||||
void VU1regsMI_FTOI12(_VURegsNum *VUregsn) { _vuRegsFTOI12(&VU1, VUregsn); }
|
||||
void VU1regsMI_FTOI15(_VURegsNum *VUregsn) { _vuRegsFTOI15(&VU1, VUregsn); }
|
||||
void VU1regsMI_ITOF0(_VURegsNum *VUregsn) { _vuRegsITOF0(&VU1, VUregsn); }
|
||||
void VU1regsMI_ITOF4(_VURegsNum *VUregsn) { _vuRegsITOF4(&VU1, VUregsn); }
|
||||
void VU1regsMI_ITOF12(_VURegsNum *VUregsn) { _vuRegsITOF12(&VU1, VUregsn); }
|
||||
void VU1regsMI_ITOF15(_VURegsNum *VUregsn) { _vuRegsITOF15(&VU1, VUregsn); }
|
||||
void VU1regsMI_CLIP(_VURegsNum *VUregsn) { _vuRegsCLIP(&VU1, VUregsn); }
|
||||
|
||||
/*****************************************/
|
||||
/* VU Micromode Lower instructions */
|
||||
/*****************************************/
|
||||
|
||||
void VU1regsMI_DIV(_VURegsNum *VUregsn) { _vuRegsDIV(&VU1, VUregsn); }
|
||||
void VU1regsMI_SQRT(_VURegsNum *VUregsn) { _vuRegsSQRT(&VU1, VUregsn); }
|
||||
void VU1regsMI_RSQRT(_VURegsNum *VUregsn) { _vuRegsRSQRT(&VU1, VUregsn); }
|
||||
void VU1regsMI_IADD(_VURegsNum *VUregsn) { _vuRegsIADD(&VU1, VUregsn); }
|
||||
void VU1regsMI_IADDI(_VURegsNum *VUregsn) { _vuRegsIADDI(&VU1, VUregsn); }
|
||||
void VU1regsMI_IADDIU(_VURegsNum *VUregsn) { _vuRegsIADDIU(&VU1, VUregsn); }
|
||||
void VU1regsMI_IAND(_VURegsNum *VUregsn) { _vuRegsIAND(&VU1, VUregsn); }
|
||||
void VU1regsMI_IOR(_VURegsNum *VUregsn) { _vuRegsIOR(&VU1, VUregsn); }
|
||||
void VU1regsMI_ISUB(_VURegsNum *VUregsn) { _vuRegsISUB(&VU1, VUregsn); }
|
||||
void VU1regsMI_ISUBIU(_VURegsNum *VUregsn) { _vuRegsISUBIU(&VU1, VUregsn); }
|
||||
void VU1regsMI_MOVE(_VURegsNum *VUregsn) { _vuRegsMOVE(&VU1, VUregsn); }
|
||||
void VU1regsMI_MFIR(_VURegsNum *VUregsn) { _vuRegsMFIR(&VU1, VUregsn); }
|
||||
void VU1regsMI_MTIR(_VURegsNum *VUregsn) { _vuRegsMTIR(&VU1, VUregsn); }
|
||||
void VU1regsMI_MR32(_VURegsNum *VUregsn) { _vuRegsMR32(&VU1, VUregsn); }
|
||||
void VU1regsMI_LQ(_VURegsNum *VUregsn) { _vuRegsLQ(&VU1, VUregsn); }
|
||||
void VU1regsMI_LQD(_VURegsNum *VUregsn) { _vuRegsLQD(&VU1, VUregsn); }
|
||||
void VU1regsMI_LQI(_VURegsNum *VUregsn) { _vuRegsLQI(&VU1, VUregsn); }
|
||||
void VU1regsMI_SQ(_VURegsNum *VUregsn) { _vuRegsSQ(&VU1, VUregsn); }
|
||||
void VU1regsMI_SQD(_VURegsNum *VUregsn) { _vuRegsSQD(&VU1, VUregsn); }
|
||||
void VU1regsMI_SQI(_VURegsNum *VUregsn) { _vuRegsSQI(&VU1, VUregsn); }
|
||||
void VU1regsMI_ILW(_VURegsNum *VUregsn) { _vuRegsILW(&VU1, VUregsn); }
|
||||
void VU1regsMI_ISW(_VURegsNum *VUregsn) { _vuRegsISW(&VU1, VUregsn); }
|
||||
void VU1regsMI_ILWR(_VURegsNum *VUregsn) { _vuRegsILWR(&VU1, VUregsn); }
|
||||
void VU1regsMI_ISWR(_VURegsNum *VUregsn) { _vuRegsISWR(&VU1, VUregsn); }
|
||||
void VU1regsMI_RINIT(_VURegsNum *VUregsn) { _vuRegsRINIT(&VU1, VUregsn); }
|
||||
void VU1regsMI_RGET(_VURegsNum *VUregsn) { _vuRegsRGET(&VU1, VUregsn); }
|
||||
void VU1regsMI_RNEXT(_VURegsNum *VUregsn) { _vuRegsRNEXT(&VU1, VUregsn); }
|
||||
void VU1regsMI_RXOR(_VURegsNum *VUregsn) { _vuRegsRXOR(&VU1, VUregsn); }
|
||||
void VU1regsMI_WAITQ(_VURegsNum *VUregsn) { _vuRegsWAITQ(&VU1, VUregsn); }
|
||||
void VU1regsMI_FSAND(_VURegsNum *VUregsn) { _vuRegsFSAND(&VU1, VUregsn); }
|
||||
void VU1regsMI_FSEQ(_VURegsNum *VUregsn) { _vuRegsFSEQ(&VU1, VUregsn); }
|
||||
void VU1regsMI_FSOR(_VURegsNum *VUregsn) { _vuRegsFSOR(&VU1, VUregsn); }
|
||||
void VU1regsMI_FSSET(_VURegsNum *VUregsn) { _vuRegsFSSET(&VU1, VUregsn); }
|
||||
void VU1regsMI_FMAND(_VURegsNum *VUregsn) { _vuRegsFMAND(&VU1, VUregsn); }
|
||||
void VU1regsMI_FMEQ(_VURegsNum *VUregsn) { _vuRegsFMEQ(&VU1, VUregsn); }
|
||||
void VU1regsMI_FMOR(_VURegsNum *VUregsn) { _vuRegsFMOR(&VU1, VUregsn); }
|
||||
void VU1regsMI_FCAND(_VURegsNum *VUregsn) { _vuRegsFCAND(&VU1, VUregsn); }
|
||||
void VU1regsMI_FCEQ(_VURegsNum *VUregsn) { _vuRegsFCEQ(&VU1, VUregsn); }
|
||||
void VU1regsMI_FCOR(_VURegsNum *VUregsn) { _vuRegsFCOR(&VU1, VUregsn); }
|
||||
void VU1regsMI_FCSET(_VURegsNum *VUregsn) { _vuRegsFCSET(&VU1, VUregsn); }
|
||||
void VU1regsMI_FCGET(_VURegsNum *VUregsn) { _vuRegsFCGET(&VU1, VUregsn); }
|
||||
void VU1regsMI_IBEQ(_VURegsNum *VUregsn) { _vuRegsIBEQ(&VU1, VUregsn); }
|
||||
void VU1regsMI_IBGEZ(_VURegsNum *VUregsn) { _vuRegsIBGEZ(&VU1, VUregsn); }
|
||||
void VU1regsMI_IBGTZ(_VURegsNum *VUregsn) { _vuRegsIBGTZ(&VU1, VUregsn); }
|
||||
void VU1regsMI_IBLTZ(_VURegsNum *VUregsn) { _vuRegsIBLTZ(&VU1, VUregsn); }
|
||||
void VU1regsMI_IBLEZ(_VURegsNum *VUregsn) { _vuRegsIBLEZ(&VU1, VUregsn); }
|
||||
void VU1regsMI_IBNE(_VURegsNum *VUregsn) { _vuRegsIBNE(&VU1, VUregsn); }
|
||||
void VU1regsMI_B(_VURegsNum *VUregsn) { _vuRegsB(&VU1, VUregsn); }
|
||||
void VU1regsMI_BAL(_VURegsNum *VUregsn) { _vuRegsBAL(&VU1, VUregsn); }
|
||||
void VU1regsMI_JR(_VURegsNum *VUregsn) { _vuRegsJR(&VU1, VUregsn); }
|
||||
void VU1regsMI_JALR(_VURegsNum *VUregsn) { _vuRegsJALR(&VU1, VUregsn); }
|
||||
void VU1regsMI_MFP(_VURegsNum *VUregsn) { _vuRegsMFP(&VU1, VUregsn); }
|
||||
void VU1regsMI_WAITP(_VURegsNum *VUregsn) { _vuRegsWAITP(&VU1, VUregsn); }
|
||||
void VU1regsMI_ESADD(_VURegsNum *VUregsn) { _vuRegsESADD(&VU1, VUregsn); }
|
||||
void VU1regsMI_ERSADD(_VURegsNum *VUregsn) { _vuRegsERSADD(&VU1, VUregsn); }
|
||||
void VU1regsMI_ELENG(_VURegsNum *VUregsn) { _vuRegsELENG(&VU1, VUregsn); }
|
||||
void VU1regsMI_ERLENG(_VURegsNum *VUregsn) { _vuRegsERLENG(&VU1, VUregsn); }
|
||||
void VU1regsMI_EATANxy(_VURegsNum *VUregsn) { _vuRegsEATANxy(&VU1, VUregsn); }
|
||||
void VU1regsMI_EATANxz(_VURegsNum *VUregsn) { _vuRegsEATANxz(&VU1, VUregsn); }
|
||||
void VU1regsMI_ESUM(_VURegsNum *VUregsn) { _vuRegsESUM(&VU1, VUregsn); }
|
||||
void VU1regsMI_ERCPR(_VURegsNum *VUregsn) { _vuRegsERCPR(&VU1, VUregsn); }
|
||||
void VU1regsMI_ESQRT(_VURegsNum *VUregsn) { _vuRegsESQRT(&VU1, VUregsn); }
|
||||
void VU1regsMI_ERSQRT(_VURegsNum *VUregsn) { _vuRegsERSQRT(&VU1, VUregsn); }
|
||||
void VU1regsMI_ESIN(_VURegsNum *VUregsn) { _vuRegsESIN(&VU1, VUregsn); }
|
||||
void VU1regsMI_EATAN(_VURegsNum *VUregsn) { _vuRegsEATAN(&VU1, VUregsn); }
|
||||
void VU1regsMI_EEXP(_VURegsNum *VUregsn) { _vuRegsEEXP(&VU1, VUregsn); }
|
||||
void VU1regsMI_XITOP(_VURegsNum *VUregsn) { _vuRegsXITOP(&VU1, VUregsn); }
|
||||
void VU1regsMI_XGKICK(_VURegsNum *VUregsn) { _vuRegsXGKICK(&VU1, VUregsn); }
|
||||
void VU1regsMI_XTOP(_VURegsNum *VUregsn) { _vuRegsXTOP(&VU1, VUregsn); }
|
||||
|
|
|
@ -21,8 +21,6 @@
|
|||
|
||||
extern void _vuFlushAll(VURegs* VU);
|
||||
|
||||
_vuTables(VU1, VU1);
|
||||
|
||||
void _vu1ExecUpper(VURegs* VU, u32 *ptr) {
|
||||
VU->code = ptr[1];
|
||||
IdebugUPPER(VU1);
|
||||
|
|
1194
pcsx2/VUmicro.h
1194
pcsx2/VUmicro.h
File diff suppressed because it is too large
Load Diff
1011
pcsx2/VUops.cpp
1011
pcsx2/VUops.cpp
File diff suppressed because it is too large
Load Diff
|
@ -27,6 +27,20 @@
|
|||
|
||||
#define MAC_Reset( VU ) VU->VI[REG_MAC_FLAG].UL = VU->VI[REG_MAC_FLAG].UL & (~0xFFFF)
|
||||
|
||||
#define __vuRegsCall __fastcall
|
||||
typedef void __vuRegsCall FnType_VuRegsN(_VURegsNum *VUregsn);
|
||||
typedef FnType_VuRegsN* Fnptr_VuRegsN;
|
||||
|
||||
extern __aligned16 const Fnptr_Void VU0_LOWER_OPCODE[128];
|
||||
extern __aligned16 const Fnptr_Void VU0_UPPER_OPCODE[64];
|
||||
extern __aligned16 const Fnptr_VuRegsN VU0regs_LOWER_OPCODE[128];
|
||||
extern __aligned16 const Fnptr_VuRegsN VU0regs_UPPER_OPCODE[64];
|
||||
|
||||
extern __aligned16 const Fnptr_Void VU1_LOWER_OPCODE[128];
|
||||
extern __aligned16 const Fnptr_Void VU1_UPPER_OPCODE[64];
|
||||
extern __aligned16 const Fnptr_VuRegsN VU1regs_LOWER_OPCODE[128];
|
||||
extern __aligned16 const Fnptr_VuRegsN VU1regs_UPPER_OPCODE[64];
|
||||
|
||||
extern void _vuTestPipes(VURegs * VU);
|
||||
extern void _vuTestUpperStalls(VURegs * VU, _VURegsNum *VUregsn);
|
||||
extern void _vuTestLowerStalls(VURegs * VU, _VURegsNum *VUregsn);
|
||||
|
|
|
@ -18,8 +18,6 @@
|
|||
extern void _vu0WaitMicro();
|
||||
extern void _vu0FinishMicro();
|
||||
|
||||
typedef void FnType_Void();
|
||||
|
||||
//------------------------------------------------------------------
|
||||
// Macro VU - Helper Macros / Functions
|
||||
//------------------------------------------------------------------
|
||||
|
|
|
@ -82,7 +82,6 @@ struct nVifStruct {
|
|||
vifStruct* vif; // Vif Struct ptr
|
||||
VIFregisters* vifRegs; // Vif Regs ptr
|
||||
VURegs* VU; // VU Regs ptr
|
||||
u8* vuMemEnd; // End of VU Memory
|
||||
u32 vuMemLimit; // Use for fast AND
|
||||
u32 bSize; // Size of 'buffer'
|
||||
u32 bPtr;
|
||||
|
|
|
@ -194,25 +194,26 @@ void VifUnpackSSE_Dynarec::CompileRoutine() {
|
|||
xRET();
|
||||
}
|
||||
|
||||
static __fi u8* dVifsetVUptr(const nVifStruct& v, int cl, int wl, bool isFill) {
|
||||
u8* endPtr; // Check if we need to wrap around VU memory
|
||||
u8* ptr = (u8*)(v.VU->Mem + (v.vif->tag.addr & v.vuMemLimit));
|
||||
if (!isFill) { // Account for skip-cycles
|
||||
int skipSize = cl - wl;
|
||||
int blocks = _vBlock.num / wl;
|
||||
int skips = (blocks * skipSize + _vBlock.num) * 16;
|
||||
static __noinline u8* dVifsetVUptr(const nVifStruct& v, int cl, int wl, bool isFill) {
|
||||
u8* startmem = v.VU->Mem + (v.vif->tag.addr & v.vuMemLimit);
|
||||
u8* endmem = v.VU->Mem + (v.vuMemLimit+0x10);
|
||||
uint length = _vBlock.num * 16;
|
||||
|
||||
//We must do skips - 1 here else skip calculation adds an extra skip which can overflow
|
||||
//causing the emu to drop back to the interpreter (do not need to skip on last block write) - Refraction
|
||||
if(skipSize > 0) skips -= skipSize * 16;
|
||||
endPtr = ptr + skips;
|
||||
if (!isFill) {
|
||||
// Accounting for skipping mode: Subtract the last skip cycle, since the skipped part of the run
|
||||
// shouldn't count as wrapped data. Otherwise, a trailing skip can cause the emu to drop back
|
||||
// to the interpreter. -- Refraction (test with MGS3)
|
||||
|
||||
int skipSize = (cl - wl) * 16;
|
||||
int blocks = _vBlock.num / wl;
|
||||
length += (blocks-1) * skipSize;
|
||||
}
|
||||
else endPtr = ptr + (_vBlock.num * 16);
|
||||
if ( endPtr > v.vuMemEnd ) {
|
||||
//DevCon.WriteLn("nVif%x - VU Mem Ptr Overflow; falling back to interpreter. Start = %x End = %x num = %x, wl = %x, cl = %x", v.idx, v.vif->tag.addr, v.vif->tag.addr + (_vBlock.num * 16), _vBlock.num, wl, cl);
|
||||
ptr = NULL; // Fall Back to Interpreters which have wrap-around logic
|
||||
|
||||
if ( (startmem+length) <= endmem ) {
|
||||
return startmem;
|
||||
}
|
||||
return ptr;
|
||||
//Console.WriteLn("nVif%x - VU Mem Ptr Overflow; falling back to interpreter. Start = %x End = %x num = %x, wl = %x, cl = %x", v.idx, v.vif->tag.addr, v.vif->tag.addr + (_vBlock.num * 16), _vBlock.num, wl, cl);
|
||||
return NULL; // Fall Back to Interpreters which have wrap-around logic
|
||||
}
|
||||
|
||||
// [TODO] : Finish implementing support for VIF's growable recBlocks buffer. Currently
|
||||
|
|
|
@ -79,7 +79,6 @@ void resetNewVif(int idx)
|
|||
nVif[idx].VU = idx ? &VU1 : &VU0;
|
||||
nVif[idx].vif = idx ? &vif1 : &vif0;
|
||||
nVif[idx].vifRegs = idx ? vif1Regs : vif0Regs;
|
||||
nVif[idx].vuMemEnd = idx ? ((u8*)(VU1.Mem + 0x4000)) : ((u8*)(VU0.Mem + 0x1000));
|
||||
nVif[idx].vuMemLimit = idx ? 0x3ff0 : 0xff0;
|
||||
nVif[idx].bSize = 0;
|
||||
memzero(nVif[idx].buffer);
|
||||
|
|
|
@ -166,7 +166,7 @@ void VifUnpackSSE_Base::xUPK_V2_8() const {
|
|||
}
|
||||
|
||||
void VifUnpackSSE_Base::xUPK_V3_32() const {
|
||||
xMOV128 (destReg, ptr32[srcIndirect]);
|
||||
xMOV128 (destReg, ptr128[srcIndirect]);
|
||||
}
|
||||
|
||||
void VifUnpackSSE_Base::xUPK_V3_16() const {
|
||||
|
|
|
@ -22,17 +22,6 @@ extern u32 vudump;
|
|||
#define VU0_MEMSIZE 0x1000
|
||||
#define VU1_MEMSIZE 0x4000
|
||||
|
||||
void recResetVU0();
|
||||
void recExecuteVU0Block();
|
||||
void recClearVU0( u32 Addr, u32 Size );
|
||||
|
||||
void recVU1Init();
|
||||
void recVU1Shutdown();
|
||||
void recResetVU1();
|
||||
void recExecuteVU1Block();
|
||||
void recClearVU1( u32 Addr, u32 Size );
|
||||
|
||||
|
||||
u32 GetVIAddr(VURegs * VU, int reg, int read, int info); // returns the correct VI addr
|
||||
void recUpdateFlags(VURegs * VU, int reg, int info);
|
||||
|
||||
|
|
Loading…
Reference in New Issue