2006-06-15 04:19:30 +00:00
|
|
|
#ifndef _MA_EE_H_
|
|
|
|
#define _MA_EE_H_
|
|
|
|
|
|
|
|
#include "MA_MIPSIV.h"
|
|
|
|
|
|
|
|
class CMA_EE : public CMA_MIPSIV
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
CMA_EE();
|
|
|
|
~CMA_EE();
|
|
|
|
|
|
|
|
protected:
|
|
|
|
void SetupReflectionTables();
|
|
|
|
|
|
|
|
static void (*m_pOpMmi0[0x20])();
|
|
|
|
static void (*m_pOpMmi1[0x20])();
|
|
|
|
static void (*m_pOpMmi2[0x20])();
|
|
|
|
static void (*m_pOpMmi3[0x20])();
|
|
|
|
|
|
|
|
static void ReflOpRdRt(MIPSReflection::INSTRUCTION*, CMIPS*, uint32, uint32, char*, unsigned int);
|
|
|
|
static void ReflOpRsImm(MIPSReflection::INSTRUCTION*, CMIPS*, uint32, uint32, char*, unsigned int);
|
|
|
|
|
|
|
|
MIPSReflection::INSTRUCTION m_ReflMmi[64];
|
|
|
|
MIPSReflection::INSTRUCTION m_ReflMmi0[32];
|
|
|
|
MIPSReflection::INSTRUCTION m_ReflMmi1[32];
|
|
|
|
MIPSReflection::INSTRUCTION m_ReflMmi2[32];
|
|
|
|
MIPSReflection::INSTRUCTION m_ReflMmi3[32];
|
|
|
|
|
|
|
|
MIPSReflection::SUBTABLE m_ReflMmiTable;
|
|
|
|
MIPSReflection::SUBTABLE m_ReflMmi0Table;
|
|
|
|
MIPSReflection::SUBTABLE m_ReflMmi1Table;
|
|
|
|
MIPSReflection::SUBTABLE m_ReflMmi2Table;
|
|
|
|
MIPSReflection::SUBTABLE m_ReflMmi3Table;
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
|
|
static void PushVector(unsigned int);
|
|
|
|
static void PullVector(unsigned int);
|
|
|
|
|
|
|
|
//General
|
|
|
|
static void LQ();
|
|
|
|
static void SQ();
|
|
|
|
|
|
|
|
//Special
|
|
|
|
static void REEXCPT();
|
|
|
|
|
|
|
|
//RegImm
|
|
|
|
static void MTSAB();
|
|
|
|
static void MTSAH();
|
|
|
|
|
|
|
|
//Special2
|
|
|
|
static void MADD();
|
2006-06-16 05:34:05 +00:00
|
|
|
static void PLZCW();
|
2006-06-15 04:19:30 +00:00
|
|
|
static void MMI0();
|
|
|
|
static void MMI2();
|
|
|
|
static void MFHI1();
|
|
|
|
static void MTHI1();
|
|
|
|
static void MFLO1();
|
|
|
|
static void MTLO1();
|
|
|
|
static void MULT1();
|
|
|
|
static void MULTU1();
|
|
|
|
static void DIV1();
|
|
|
|
static void DIVU1();
|
|
|
|
static void MMI1();
|
|
|
|
static void MMI3();
|
|
|
|
static void PSLLH();
|
|
|
|
static void PSRLH();
|
|
|
|
static void PSRAH();
|
2008-06-09 00:06:58 +00:00
|
|
|
static void PSRAW();
|
2006-06-15 04:19:30 +00:00
|
|
|
|
|
|
|
//Mmi0
|
|
|
|
static void PSUBW();
|
|
|
|
static void PADDH();
|
|
|
|
static void PCGTH();
|
|
|
|
static void PMAXH();
|
|
|
|
static void PSUBB();
|
|
|
|
static void PADDSW();
|
|
|
|
static void PEXTLW();
|
|
|
|
static void PEXTLH();
|
|
|
|
static void PPACH();
|
|
|
|
static void PEXTLB();
|
|
|
|
static void PPACB();
|
|
|
|
static void PEXT5();
|
|
|
|
|
|
|
|
//Mmi1
|
|
|
|
static void PCEQW();
|
|
|
|
static void PMINH();
|
|
|
|
static void PADDUW();
|
|
|
|
static void PEXTUW();
|
|
|
|
static void PEXTUB();
|
|
|
|
static void QFSRV();
|
|
|
|
|
|
|
|
//Mmi2
|
|
|
|
static void PCPYLD();
|
|
|
|
static void PAND();
|
|
|
|
static void PXOR();
|
2008-05-01 03:12:06 +00:00
|
|
|
static void PROT3W();
|
2006-06-15 04:19:30 +00:00
|
|
|
|
|
|
|
//Mmi3
|
|
|
|
static void PCPYUD();
|
|
|
|
static void POR();
|
|
|
|
static void PNOR();
|
|
|
|
static void PCPYH();
|
|
|
|
|
|
|
|
//Reflection tables
|
|
|
|
static MIPSReflection::INSTRUCTION m_cReflMmi[64];
|
|
|
|
static MIPSReflection::INSTRUCTION m_cReflMmi0[32];
|
|
|
|
static MIPSReflection::INSTRUCTION m_cReflMmi1[32];
|
|
|
|
static MIPSReflection::INSTRUCTION m_cReflMmi2[32];
|
|
|
|
static MIPSReflection::INSTRUCTION m_cReflMmi3[32];
|
|
|
|
};
|
|
|
|
|
|
|
|
extern CMA_EE g_MAEE;
|
|
|
|
|
|
|
|
#endif
|