mirror of https://github.com/PCSX2/pcsx2.git
492 lines
11 KiB
C
492 lines
11 KiB
C
/* Pcsx2 - Pc Ps2 Emulator
|
|
* Copyright (C) 2002-2003 Pcsx2 Team
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, write to the Free Software
|
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
*/
|
|
#ifndef INTERTABLES_H
|
|
#define INTERTABLES_H
|
|
|
|
extern void (*Int_OpcodePrintTable[64])();
|
|
extern void (*Int_SpecialPrintTable[64])();
|
|
extern void (*Int_REGIMMPrintTable[32])();
|
|
extern void (*Int_MMIPrintTable[64])();
|
|
extern void (*Int_MMI0PrintTable[32])();
|
|
extern void (*Int_MMI1PrintTable[32])();
|
|
extern void (*Int_MMI2PrintTable[32])();
|
|
extern void (*Int_MMI3PrintTable[32])();
|
|
extern void (*Int_COP0PrintTable[32])();
|
|
extern void (*Int_COP0BC0PrintTable[32])();
|
|
extern void (*Int_COP0C0PrintTable[64])();
|
|
extern void (*Int_COP1PrintTable[32])();
|
|
extern void (*Int_COP1BC1PrintTable[32])();
|
|
extern void (*Int_COP1SPrintTable[64])();
|
|
extern void (*Int_COP1WPrintTable[64])();
|
|
extern void (*Int_COP2PrintTable[32])();
|
|
extern void (*Int_COP2BC2PrintTable[32])();
|
|
extern void (*Int_COP2SPECIAL1PrintTable[64])();
|
|
extern void (*Int_COP2SPECIAL2PrintTable[128])();
|
|
|
|
void SPECIAL();
|
|
void REGIMM();
|
|
void UnknownOpcode();
|
|
void COP0();
|
|
void COP1();
|
|
void COP2();
|
|
void MMI_Unknown();
|
|
void MMI();
|
|
void MMI0();
|
|
void MMI1();
|
|
void MMI2();
|
|
void MMI3();
|
|
void COP0_Unknown();
|
|
void COP0_BC0();
|
|
void COP0_Func();
|
|
void COP1_BC1();
|
|
void COP1_S();
|
|
void COP1_W();
|
|
void COP1_Unknown();
|
|
void COP2_BC2();
|
|
void COP2_SPECIAL();
|
|
void COP2_Unknown();
|
|
void COP2_SPECIAL2();
|
|
|
|
// **********************Standard Opcodes**************************
|
|
void J();
|
|
void JAL();
|
|
void BEQ();
|
|
void BNE();
|
|
void BLEZ();
|
|
void BGTZ();
|
|
void ADDI();
|
|
void ADDIU();
|
|
void SLTI();
|
|
void SLTIU();
|
|
void ANDI();
|
|
void ORI();
|
|
void XORI();
|
|
void LUI();
|
|
void BEQL();
|
|
void BNEL();
|
|
void BLEZL();
|
|
void BGTZL();
|
|
void DADDI();
|
|
void DADDIU();
|
|
void LDL();
|
|
void LDR();
|
|
void LB();
|
|
void LH();
|
|
void LWL();
|
|
void LW();
|
|
void LBU();
|
|
void LHU();
|
|
void LWR();
|
|
void LWU();
|
|
void SB();
|
|
void SH();
|
|
void SWL();
|
|
void SW();
|
|
void SDL();
|
|
void SDR();
|
|
void SWR();
|
|
void CACHE();
|
|
void LWC1();
|
|
void PREF();
|
|
void LQC2();
|
|
void LD();
|
|
void SQC2();
|
|
void SD();
|
|
void LQ();
|
|
void SQ();
|
|
void SWC1();
|
|
//***************end of standard opcodes*************************
|
|
|
|
|
|
//***************SPECIAL OPCODES**********************************
|
|
void SLL();
|
|
void SRL();
|
|
void SRA();
|
|
void SLLV();
|
|
void SRLV();
|
|
void SRAV();
|
|
void JR();
|
|
void JALR();
|
|
void SYSCALL();
|
|
void BREAK();
|
|
void SYNC();
|
|
void MFHI();
|
|
void MTHI();
|
|
void MFLO();
|
|
void MTLO();
|
|
void DSLLV();
|
|
void DSRLV();
|
|
void DSRAV();
|
|
void MULT();
|
|
void MULTU();
|
|
void DIV();
|
|
void DIVU();
|
|
void ADD();
|
|
void ADDU();
|
|
void SUB();
|
|
void SUBU();
|
|
void AND();
|
|
void OR();
|
|
void XOR();
|
|
void NOR();
|
|
void SLT();
|
|
void SLTU();
|
|
void DADD();
|
|
void DADDU();
|
|
void DSUB();
|
|
void DSUBU();
|
|
void TGE();
|
|
void TGEU();
|
|
void TLT();
|
|
void TLTU();
|
|
void TEQ();
|
|
void TNE();
|
|
void DSLL();
|
|
void DSRL();
|
|
void DSRA();
|
|
void DSLL32();
|
|
void DSRL32();
|
|
void DSRA32();
|
|
void MOVZ();
|
|
void MOVN();
|
|
void MFSA();
|
|
void MTSA();
|
|
//******************END OF SPECIAL OPCODES**************************
|
|
|
|
//******************REGIMM OPCODES**********************************
|
|
void BLTZ();
|
|
void BGEZ();
|
|
void BLTZL();
|
|
void BGEZL();
|
|
void TGEI();
|
|
void TGEIU();
|
|
void TLTI();
|
|
void TLTIU();
|
|
void TEQI();
|
|
void TNEI();
|
|
void BLTZAL();
|
|
void BGEZAL();
|
|
void BLTZALL();
|
|
void BGEZALL();
|
|
void MTSAB();
|
|
void MTSAH();
|
|
//*****************END OF REGIMM OPCODES*****************************
|
|
//*****************MMI OPCODES*********************************
|
|
void MADD();
|
|
void MADDU();
|
|
void PLZCW();
|
|
void MADD1();
|
|
void MADDU1();
|
|
void MFHI1();
|
|
void MTHI1();
|
|
void MFLO1();
|
|
void MTLO1();
|
|
void MULT1();
|
|
void MULTU1();
|
|
void DIV1();
|
|
void DIVU1();
|
|
void PMFHL();
|
|
void PMTHL();
|
|
void PSLLH();
|
|
void PSRLH();
|
|
void PSRAH();
|
|
void PSLLW();
|
|
void PSRLW();
|
|
void PSRAW();
|
|
//*****************END OF MMI OPCODES**************************
|
|
//*************************MMI0 OPCODES************************
|
|
|
|
void PADDW();
|
|
void PSUBW();
|
|
void PCGTW();
|
|
void PMAXW();
|
|
void PADDH();
|
|
void PSUBH();
|
|
void PCGTH();
|
|
void PMAXH();
|
|
void PADDB();
|
|
void PSUBB();
|
|
void PCGTB();
|
|
void PADDSW();
|
|
void PSUBSW();
|
|
void PEXTLW();
|
|
void PPACW();
|
|
void PADDSH();
|
|
void PSUBSH();
|
|
void PEXTLH();
|
|
void PPACH();
|
|
void PADDSB();
|
|
void PSUBSB();
|
|
void PEXTLB();
|
|
void PPACB();
|
|
void PEXT5();
|
|
void PPAC5();
|
|
//***END OF MMI0 OPCODES******************************************
|
|
//**********MMI1 OPCODES**************************************
|
|
void PABSW();
|
|
void PCEQW();
|
|
void PMINW();
|
|
void PADSBH();
|
|
void PABSH();
|
|
void PCEQH();
|
|
void PMINH();
|
|
void PCEQB();
|
|
void PADDUW();
|
|
void PSUBUW();
|
|
void PEXTUW();
|
|
void PADDUH();
|
|
void PSUBUH();
|
|
void PEXTUH();
|
|
void PADDUB();
|
|
void PSUBUB();
|
|
void PEXTUB();
|
|
void QFSRV();
|
|
//********END OF MMI1 OPCODES***********************************
|
|
//*********MMI2 OPCODES***************************************
|
|
void PMADDW();
|
|
void PSLLVW();
|
|
void PSRLVW();
|
|
void PMSUBW();
|
|
void PMFHI();
|
|
void PMFLO();
|
|
void PINTH();
|
|
void PMULTW();
|
|
void PDIVW();
|
|
void PCPYLD();
|
|
void PMADDH();
|
|
void PHMADH();
|
|
void PAND();
|
|
void PXOR();
|
|
void PMSUBH();
|
|
void PHMSBH();
|
|
void PEXEH();
|
|
void PREVH();
|
|
void PMULTH();
|
|
void PDIVBW();
|
|
void PEXEW();
|
|
void PROT3W();
|
|
//*****END OF MMI2 OPCODES***********************************
|
|
//*************************MMI3 OPCODES************************
|
|
void PMADDUW();
|
|
void PSRAVW();
|
|
void PMTHI();
|
|
void PMTLO();
|
|
void PINTEH();
|
|
void PMULTUW();
|
|
void PDIVUW();
|
|
void PCPYUD();
|
|
void POR();
|
|
void PNOR();
|
|
void PEXCH();
|
|
void PCPYH();
|
|
void PEXCW();
|
|
//**********************END OF MMI3 OPCODES********************
|
|
//****************************************************************************
|
|
//** COP0 **
|
|
//****************************************************************************
|
|
void MFC0();
|
|
void MTC0();
|
|
void BC0F();
|
|
void BC0T();
|
|
void BC0FL();
|
|
void BC0TL();
|
|
void TLBR();
|
|
void TLBWI();
|
|
void TLBWR();
|
|
void TLBP();
|
|
void ERET();
|
|
void DI();
|
|
void EI();
|
|
//****************************************************************************
|
|
//** END OF COP0 **
|
|
//****************************************************************************
|
|
//****************************************************************************
|
|
//** COP1 - Floating Point Unit (FPU) **
|
|
//****************************************************************************
|
|
void MFC1();
|
|
void CFC1();
|
|
void MTC1();
|
|
void CTC1();
|
|
void BC1F();
|
|
void BC1T();
|
|
void BC1FL();
|
|
void BC1TL();
|
|
void ADD_S();
|
|
void SUB_S();
|
|
void MUL_S();
|
|
void DIV_S();
|
|
void SQRT_S();
|
|
void ABS_S();
|
|
void MOV_S();
|
|
void NEG_S();
|
|
void RSQRT_S();
|
|
void ADDA_S();
|
|
void SUBA_S();
|
|
void MULA_S();
|
|
void MADD_S();
|
|
void MSUB_S();
|
|
void MADDA_S();
|
|
void MSUBA_S();
|
|
void CVT_W();
|
|
void MAX_S();
|
|
void MIN_S();
|
|
void C_F();
|
|
void C_EQ();
|
|
void C_LT();
|
|
void C_LE();
|
|
void CVT_S();
|
|
//****************************************************************************
|
|
//** END OF COP1 **
|
|
//****************************************************************************
|
|
//****************************************************************************
|
|
//** COP2 - (VU0) **
|
|
//****************************************************************************
|
|
void QMFC2();
|
|
void CFC2();
|
|
void QMTC2();
|
|
void CTC2();
|
|
void BC2F();
|
|
void BC2T();
|
|
void BC2FL();
|
|
void BC2TL();
|
|
//*****************SPECIAL 1 VUO TABLE*******************************
|
|
void VADDx();
|
|
void VADDy();
|
|
void VADDz();
|
|
void VADDw();
|
|
void VSUBx();
|
|
void VSUBy();
|
|
void VSUBz();
|
|
void VSUBw();
|
|
void VMADDx();
|
|
void VMADDy();
|
|
void VMADDz();
|
|
void VMADDw();
|
|
void VMSUBx();
|
|
void VMSUBy();
|
|
void VMSUBz();
|
|
void VMSUBw();
|
|
void VMAXx();
|
|
void VMAXy();
|
|
void VMAXz();
|
|
void VMAXw();
|
|
void VMINIx();
|
|
void VMINIy();
|
|
void VMINIz();
|
|
void VMINIw();
|
|
void VMULx();
|
|
void VMULy();
|
|
void VMULz();
|
|
void VMULw();
|
|
void VMULq();
|
|
void VMAXi();
|
|
void VMULi();
|
|
void VMINIi();
|
|
void VADDq();
|
|
void VMADDq();
|
|
void VADDi();
|
|
void VMADDi();
|
|
void VSUBq();
|
|
void VMSUBq();
|
|
void VSUBi();
|
|
void VMSUBi();
|
|
void VADD();
|
|
void VMADD();
|
|
void VMUL();
|
|
void VMAX();
|
|
void VSUB();
|
|
void VMSUB();
|
|
void VOPMSUB();
|
|
void VMINI();
|
|
void VIADD();
|
|
void VISUB();
|
|
void VIADDI();
|
|
void VIAND();
|
|
void VIOR();
|
|
void VCALLMS();
|
|
void VCALLMSR();
|
|
//***********************************END OF SPECIAL1 VU0 TABLE*****************************
|
|
//******************************SPECIAL2 VUO TABLE*****************************************
|
|
void VADDAx();
|
|
void VADDAy();
|
|
void VADDAz();
|
|
void VADDAw();
|
|
void VSUBAx();
|
|
void VSUBAy();
|
|
void VSUBAz();
|
|
void VSUBAw();
|
|
void VMADDAx();
|
|
void VMADDAy();
|
|
void VMADDAz();
|
|
void VMADDAw();
|
|
void VMSUBAx();
|
|
void VMSUBAy();
|
|
void VMSUBAz();
|
|
void VMSUBAw();
|
|
void VITOF0();
|
|
void VITOF4();
|
|
void VITOF12();
|
|
void VITOF15();
|
|
void VFTOI0();
|
|
void VFTOI4();
|
|
void VFTOI12();
|
|
void VFTOI15();
|
|
void VMULAx();
|
|
void VMULAy();
|
|
void VMULAz();
|
|
void VMULAw();
|
|
void VMULAq();
|
|
void VABS();
|
|
void VMULAi();
|
|
void VCLIPw();
|
|
void VADDAq();
|
|
void VMADDAq();
|
|
void VADDAi();
|
|
void VMADDAi();
|
|
void VSUBAq();
|
|
void VMSUBAq();
|
|
void VSUBAi();
|
|
void VMSUBAi();
|
|
void VADDA();
|
|
void VMADDA();
|
|
void VMULA();
|
|
void VSUBA();
|
|
void VMSUBA();
|
|
void VOPMULA();
|
|
void VNOP();
|
|
void VMOVE();
|
|
void VMR32();
|
|
void VLQI();
|
|
void VSQI();
|
|
void VLQD();
|
|
void VSQD();
|
|
void VDIV();
|
|
void VSQRT();
|
|
void VRSQRT();
|
|
void VWAITQ();
|
|
void VMTIR();
|
|
void VMFIR();
|
|
void VILWR();
|
|
void VISWR();
|
|
void VRNEXT();
|
|
void VRGET();
|
|
void VRINIT();
|
|
void VRXOR();
|
|
//************************************END OF SPECIAL2 ************
|
|
#endif
|