2012-12-19 09:30:18 +00:00
|
|
|
#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:
|
2021-05-18 11:51:36 +00:00
|
|
|
// Opcode functions
|
2015-11-14 22:08:30 +00:00
|
|
|
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
|
|
|
|
2021-05-18 11:51:36 +00:00
|
|
|
// R4300i opcodes: Special
|
2015-11-14 22:08:30 +00:00
|
|
|
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();
|
2010-05-25 09:15:19 +00:00
|
|
|
|
2021-05-18 11:51:36 +00:00
|
|
|
// R4300i opcodes: RegImm
|
2015-11-14 22:08:30 +00:00
|
|
|
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
|
|
|
|
2021-05-18 11:51:36 +00:00
|
|
|
// COP0 functions
|
2015-11-14 22:08:30 +00:00
|
|
|
static void COP0_MF();
|
2010-05-25 09:15:19 +00:00
|
|
|
|
2021-05-18 11:51:36 +00:00
|
|
|
// COP1 functions
|
2015-11-14 22:08:30 +00:00
|
|
|
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
|
|
|
};
|