2023-06-15 11:39:44 +00:00
|
|
|
#pragma once
|
|
|
|
#include <string>
|
|
|
|
#include <stdint.h>
|
|
|
|
#include "RSPOpcode.h"
|
|
|
|
|
|
|
|
class RSPInstruction
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
RSPInstruction(uint32_t Address, uint32_t Instruction);
|
|
|
|
|
|
|
|
const char * Name();
|
|
|
|
const char * Param();
|
|
|
|
std::string NameAndParam();
|
|
|
|
|
|
|
|
private:
|
|
|
|
RSPInstruction(void);
|
|
|
|
RSPInstruction(const RSPInstruction &);
|
|
|
|
RSPInstruction & operator=(const RSPInstruction &);
|
|
|
|
|
|
|
|
void DecodeName(void);
|
|
|
|
void DecodeSpecialName(void);
|
|
|
|
void DecodeRegImmName(void);
|
|
|
|
void DecodeCop0Name(void);
|
|
|
|
void DecodeCop2Name(void);
|
2023-07-06 08:19:15 +00:00
|
|
|
void DecodeLSC2Name(const char LoadStoreIdent);
|
2023-06-15 11:39:44 +00:00
|
|
|
|
2023-06-29 01:29:54 +00:00
|
|
|
static const char * ElementSpecifier(uint32_t Element);
|
|
|
|
|
2023-06-15 11:39:44 +00:00
|
|
|
uint32_t m_Address;
|
|
|
|
RSPOpcode m_Instruction;
|
|
|
|
char m_Name[40];
|
|
|
|
char m_Param[200];
|
|
|
|
};
|