2012-12-19 09:30:18 +00:00
|
|
|
/****************************************************************************
|
|
|
|
* *
|
2015-11-10 05:21:49 +00:00
|
|
|
* Project64 - A Nintendo 64 emulator. *
|
2012-12-19 09:30:18 +00:00
|
|
|
* http://www.pj64-emu.com/ *
|
|
|
|
* Copyright (C) 2012 Project64. All rights reserved. *
|
|
|
|
* *
|
|
|
|
* License: *
|
|
|
|
* GNU/GPLv2 http://www.gnu.org/licenses/gpl-2.0.html *
|
|
|
|
* *
|
|
|
|
****************************************************************************/
|
|
|
|
#pragma once
|
|
|
|
|
2016-01-13 09:35:08 +00:00
|
|
|
#include <Project64-core/N64System/Interpreter/InterpreterOps.h>
|
2015-11-15 00:29:15 +00:00
|
|
|
|
2010-05-25 09:15:19 +00:00
|
|
|
class R4300iOp32 :
|
2015-11-14 22:08:30 +00:00
|
|
|
public R4300iOp
|
2010-05-25 09:15:19 +00:00
|
|
|
{
|
|
|
|
public:
|
2015-11-14 22:08:30 +00:00
|
|
|
/************************* OpCode functions *************************/
|
|
|
|
static void JAL();
|
|
|
|
static void BEQ();
|
|
|
|
static void BNE();
|
|
|
|
static void BLEZ();
|
|
|
|
static void BGTZ();
|
|
|
|
static void ADDI();
|
|
|
|
static void ADDIU();
|
|
|
|
static void SLTI();
|
|
|
|
static void SLTIU();
|
|
|
|
static void ANDI();
|
|
|
|
static void ORI();
|
|
|
|
static void XORI();
|
|
|
|
static void LUI();
|
|
|
|
static void BEQL();
|
|
|
|
static void BNEL();
|
|
|
|
static void BLEZL();
|
|
|
|
static void BGTZL();
|
|
|
|
static void LB();
|
|
|
|
static void LH();
|
|
|
|
static void LWL();
|
|
|
|
static void LW();
|
|
|
|
static void LBU();
|
|
|
|
static void LHU();
|
|
|
|
static void LWR();
|
|
|
|
static void LWU();
|
|
|
|
static void LL();
|
2010-05-25 09:15:19 +00:00
|
|
|
|
2015-11-14 22:08:30 +00:00
|
|
|
/********************** R4300i OpCodes: Special **********************/
|
|
|
|
static void SPECIAL_SLL();
|
|
|
|
static void SPECIAL_SRL();
|
|
|
|
static void SPECIAL_SRA();
|
|
|
|
static void SPECIAL_SLLV();
|
|
|
|
static void SPECIAL_SRLV();
|
|
|
|
static void SPECIAL_SRAV();
|
|
|
|
static void SPECIAL_JALR();
|
|
|
|
static void SPECIAL_ADD();
|
|
|
|
static void SPECIAL_ADDU();
|
|
|
|
static void SPECIAL_SUB();
|
|
|
|
static void SPECIAL_SUBU();
|
|
|
|
static void SPECIAL_AND();
|
|
|
|
static void SPECIAL_OR();
|
|
|
|
static void SPECIAL_NOR();
|
|
|
|
static void SPECIAL_SLT();
|
|
|
|
static void SPECIAL_SLTU();
|
|
|
|
static void SPECIAL_TEQ();
|
|
|
|
static void SPECIAL_DSRL32();
|
|
|
|
static void SPECIAL_DSRA32();
|
2010-05-25 09:15:19 +00:00
|
|
|
|
2015-11-14 22:08:30 +00:00
|
|
|
/********************** R4300i OpCodes: RegImm **********************/
|
|
|
|
static void REGIMM_BLTZ();
|
|
|
|
static void REGIMM_BGEZ();
|
|
|
|
static void REGIMM_BLTZL();
|
|
|
|
static void REGIMM_BGEZL();
|
|
|
|
static void REGIMM_BLTZAL();
|
|
|
|
static void REGIMM_BGEZAL();
|
2010-05-25 09:15:19 +00:00
|
|
|
|
2015-11-14 22:08:30 +00:00
|
|
|
/************************** COP0 functions **************************/
|
|
|
|
static void COP0_MF();
|
|
|
|
static void COP0_MT();
|
2010-05-25 09:15:19 +00:00
|
|
|
|
2015-11-14 22:08:30 +00:00
|
|
|
/************************** COP1 functions **************************/
|
|
|
|
static void COP1_MF();
|
|
|
|
static void COP1_CF();
|
|
|
|
static void COP1_DMT();
|
2010-05-25 09:15:19 +00:00
|
|
|
|
2015-11-14 22:08:30 +00:00
|
|
|
static Func* BuildInterpreter();
|
2010-05-25 09:15:19 +00:00
|
|
|
};
|