mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-07-10 08:51:28 +12:00
449 lines
13 KiB
C++
449 lines
13 KiB
C++
#pragma once
|
|
|
|
namespace SPU_opcodes
|
|
{
|
|
enum SPU_0_10_Opcodes
|
|
{
|
|
STOP = 0x0,
|
|
LNOP = 0x1,
|
|
SYNC = 0x2,
|
|
DSYNC = 0x3,
|
|
MFSPR = 0xc,
|
|
RDCH = 0xd,
|
|
RCHCNT = 0xf,
|
|
SF = 0x40,
|
|
OR = 0x41,
|
|
BG = 0x42,
|
|
SFH = 0x48,
|
|
NOR = 0x49,
|
|
ABSDB = 0x53,
|
|
ROT = 0x58,
|
|
ROTM = 0x59,
|
|
ROTMA = 0x5a,
|
|
SHL = 0x5b,
|
|
ROTH = 0x5c,
|
|
ROTHM = 0x5d,
|
|
ROTMAH = 0x5e,
|
|
SHLH = 0x5f,
|
|
ROTI = 0x78,
|
|
ROTMI = 0x79,
|
|
ROTMAI = 0x7a,
|
|
SHLI = 0x7b,
|
|
ROTHI = 0x7c,
|
|
ROTHMI = 0x7d,
|
|
ROTMAHI = 0x7e,
|
|
SHLHI = 0x7f,
|
|
A = 0xc0,
|
|
AND = 0xc1,
|
|
CG = 0xc2,
|
|
AH = 0xc8,
|
|
NAND = 0xc9,
|
|
AVGB = 0xd3,
|
|
MTSPR = 0x10c,
|
|
WRCH = 0x10d,
|
|
BIZ = 0x128,
|
|
BINZ = 0x129,
|
|
BIHZ = 0x12a,
|
|
BIHNZ = 0x12b,
|
|
STOPD = 0x140,
|
|
STQX = 0x144,
|
|
BI = 0x1a8,
|
|
BISL = 0x1a9,
|
|
IRET = 0x1aa,
|
|
BISLED = 0x1ab,
|
|
HBR = 0x1ac,
|
|
GB = 0x1b0,
|
|
GBH = 0x1b1,
|
|
GBB = 0x1b2,
|
|
FSM = 0x1b4,
|
|
FSMH = 0x1b5,
|
|
FSMB = 0x1b6,
|
|
FREST = 0x1b8,
|
|
FRSQEST = 0x1b9,
|
|
LQX = 0x1c4,
|
|
ROTQBYBI = 0x1cc,
|
|
ROTQMBYBI = 0x1cd,
|
|
SHLQBYBI = 0x1cf,
|
|
CBX = 0x1d4,
|
|
CHX = 0x1d5,
|
|
CWX = 0x1d6,
|
|
CDX = 0x1d7,
|
|
ROTQBI = 0x1d8,
|
|
ROTQMBI = 0x1d9,
|
|
SHLQBI = 0x1db,
|
|
ROTQBY = 0x1dc,
|
|
ROTQMBY = 0x1dd,
|
|
SHLQBY = 0x1df,
|
|
ORX = 0x1f0,
|
|
CBD = 0x1f4,
|
|
CHD = 0x1f5,
|
|
CWD = 0x1f6,
|
|
CDD = 0x1f7,
|
|
ROTQBII = 0x1f8,
|
|
ROTQMBII = 0x1f9,
|
|
SHLQBII = 0x1fb,
|
|
ROTQBYI = 0x1fc,
|
|
ROTQMBYI = 0x1fd,
|
|
SHLQBYI = 0x1ff,
|
|
NOP = 0x201,
|
|
CGT = 0x240,
|
|
XOR = 0x241,
|
|
CGTH = 0x248,
|
|
EQV = 0x249,
|
|
CGTB = 0x250,
|
|
SUMB = 0x253,
|
|
HGT = 0x258,
|
|
CLZ = 0x2a5,
|
|
XSWD = 0x2a6,
|
|
XSHW = 0x2ae,
|
|
CNTB = 0x2b4,
|
|
XSBH = 0x2b6,
|
|
CLGT = 0x2c0,
|
|
ANDC = 0x2c1,
|
|
FCGT = 0x2c2,
|
|
DFCGT = 0x2c3,
|
|
FA = 0x2c4,
|
|
FS = 0x2c5,
|
|
FM = 0x2c6,
|
|
CLGTH = 0x2c8,
|
|
ORC = 0x2c9,
|
|
FCMGT = 0x2ca,
|
|
DFCMGT = 0x2cb,
|
|
DFA = 0x2cc,
|
|
DFS = 0x2cd,
|
|
DFM = 0x2ce,
|
|
CLGTB = 0x2d0,
|
|
HLGT = 0x2d8,
|
|
DFMA = 0x35c,
|
|
DFMS = 0x35d,
|
|
DFNMS = 0x35e,
|
|
DFNMA = 0x35f,
|
|
CEQ = 0x3c0,
|
|
MPYHHU = 0x3ce,
|
|
ADDX = 0x340,
|
|
SFX = 0x341,
|
|
CGX = 0x342,
|
|
BGX = 0x343,
|
|
MPYHHA = 0x346,
|
|
MPYHHAU = 0x34e,
|
|
FSCRRD = 0x398,
|
|
FESD = 0x3b8,
|
|
FRDS = 0x3b9,
|
|
FSCRWR = 0x3ba,
|
|
DFTSV = 0x3bf,
|
|
FCEQ = 0x3c2,
|
|
DFCEQ = 0x3c3,
|
|
MPY = 0x3c4,
|
|
MPYH = 0x3c5,
|
|
MPYHH = 0x3c6,
|
|
MPYS = 0x3c7,
|
|
CEQH = 0x3c8,
|
|
FCMEQ = 0x3ca,
|
|
DFCMEQ = 0x3cb,
|
|
MPYU = 0x3cc,
|
|
CEQB = 0x3d0,
|
|
FI = 0x3d4,
|
|
HEQ = 0x3d8,
|
|
};
|
|
|
|
enum SPU_0_9_Opcodes
|
|
{
|
|
CFLTS = 0x1d8,
|
|
CFLTU = 0x1d9,
|
|
CSFLT = 0x1da,
|
|
CUFLT = 0x1db,
|
|
};
|
|
|
|
enum SPU_0_8_Opcodes
|
|
{
|
|
BRZ = 0x40,
|
|
STQA = 0x41,
|
|
BRNZ = 0x42,
|
|
BRHZ = 0x44,
|
|
BRHNZ = 0x46,
|
|
STQR = 0x47,
|
|
BRA = 0x60,
|
|
LQA = 0x61,
|
|
BRASL = 0x62,
|
|
BR = 0x64,
|
|
FSMBI = 0x65,
|
|
BRSL = 0x66,
|
|
LQR = 0x67,
|
|
IL = 0x81,
|
|
ILHU = 0x82,
|
|
ILH = 0x83,
|
|
IOHL = 0xc1,
|
|
};
|
|
|
|
enum SPU_0_7_Opcodes
|
|
{
|
|
ORI = 0x4,
|
|
ORHI = 0x5,
|
|
ORBI = 0x6,
|
|
SFI = 0xc,
|
|
SFHI = 0xd,
|
|
ANDI = 0x14,
|
|
ANDHI = 0x15,
|
|
ANDBI = 0x16,
|
|
AI = 0x1c,
|
|
AHI = 0x1d,
|
|
STQD = 0x24,
|
|
LQD = 0x34,
|
|
XORI = 0x44,
|
|
XORHI = 0x45,
|
|
XORBI = 0x46,
|
|
CGTI = 0x4c,
|
|
CGTHI = 0x4d,
|
|
CGTBI = 0x4e,
|
|
HGTI = 0x4f,
|
|
CLGTI = 0x5c,
|
|
CLGTHI = 0x5d,
|
|
CLGTBI = 0x5e,
|
|
HLGTI = 0x5f,
|
|
MPYI = 0x74,
|
|
MPYUI = 0x75,
|
|
CEQI = 0x7c,
|
|
CEQHI = 0x7d,
|
|
CEQBI = 0x7e,
|
|
HEQI = 0x7f,
|
|
};
|
|
|
|
enum SPU_0_6_Opcodes
|
|
{
|
|
HBRA = 0x8,
|
|
HBRR = 0x9,
|
|
ILA = 0x21,
|
|
};
|
|
|
|
enum SPU_0_3_Opcodes
|
|
{
|
|
SELB = 0x8,
|
|
SHUFB = 0xb,
|
|
MPYA = 0xc,
|
|
FNMS = 0xd,
|
|
FMA = 0xe,
|
|
FMS = 0xf,
|
|
};
|
|
};
|
|
|
|
class SPUOpcodes
|
|
{
|
|
public:
|
|
static u32 branchTarget(const u64 pc, const s32 imm)
|
|
{
|
|
return (pc + (imm << 2)) & 0x3fffc;
|
|
}
|
|
|
|
//0 - 10
|
|
virtual void STOP(u32 code) = 0;
|
|
virtual void LNOP() = 0;
|
|
virtual void SYNC(u32 Cbit) = 0;
|
|
virtual void DSYNC() = 0;
|
|
virtual void MFSPR(u32 rt, u32 sa) = 0;
|
|
virtual void RDCH(u32 rt, u32 ra) = 0;
|
|
virtual void RCHCNT(u32 rt, u32 ra) = 0;
|
|
virtual void SF(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void OR(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void BG(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void SFH(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void NOR(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void ABSDB(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void ROT(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void ROTM(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void ROTMA(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void SHL(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void ROTH(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void ROTHM(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void ROTMAH(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void SHLH(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void ROTI(u32 rt, u32 ra, s32 i7) = 0;
|
|
virtual void ROTMI(u32 rt, u32 ra, s32 i7) = 0;
|
|
virtual void ROTMAI(u32 rt, u32 ra, s32 i7) = 0;
|
|
virtual void SHLI(u32 rt, u32 ra, s32 i7) = 0;
|
|
virtual void ROTHI(u32 rt, u32 ra, s32 i7) = 0;
|
|
virtual void ROTHMI(u32 rt, u32 ra, s32 i7) = 0;
|
|
virtual void ROTMAHI(u32 rt, u32 ra, s32 i7) = 0;
|
|
virtual void SHLHI(u32 rt, u32 ra, s32 i7) = 0;
|
|
virtual void A(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void AND(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void CG(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void AH(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void NAND(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void AVGB(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void MTSPR(u32 rt, u32 sa) = 0;
|
|
virtual void WRCH(u32 ra, u32 rt) = 0;
|
|
virtual void BIZ(u32 rt, u32 ra) = 0;
|
|
virtual void BINZ(u32 rt, u32 ra) = 0;
|
|
virtual void BIHZ(u32 rt, u32 ra) = 0;
|
|
virtual void BIHNZ(u32 rt, u32 ra) = 0;
|
|
virtual void STOPD(u32 rc, u32 ra, u32 rb) = 0;
|
|
virtual void STQX(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void BI(u32 ra) = 0;
|
|
virtual void BISL(u32 rt, u32 ra) = 0;
|
|
virtual void IRET(u32 ra) = 0;
|
|
virtual void BISLED(u32 rt, u32 ra) = 0;
|
|
virtual void HBR(u32 p, u32 ro, u32 ra) = 0;
|
|
virtual void GB(u32 rt, u32 ra) = 0;
|
|
virtual void GBH(u32 rt, u32 ra) = 0;
|
|
virtual void GBB(u32 rt, u32 ra) = 0;
|
|
virtual void FSM(u32 rt, u32 ra) = 0;
|
|
virtual void FSMH(u32 rt, u32 ra) = 0;
|
|
virtual void FSMB(u32 rt, u32 ra) = 0;
|
|
virtual void FREST(u32 rt, u32 ra) = 0;
|
|
virtual void FRSQEST(u32 rt, u32 ra) = 0;
|
|
virtual void LQX(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void ROTQBYBI(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void ROTQMBYBI(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void SHLQBYBI(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void CBX(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void CHX(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void CWX(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void CDX(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void ROTQBI(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void ROTQMBI(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void SHLQBI(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void ROTQBY(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void ROTQMBY(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void SHLQBY(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void ORX(u32 rt, u32 ra) = 0;
|
|
virtual void CBD(u32 rt, u32 ra, s32 i7) = 0;
|
|
virtual void CHD(u32 rt, u32 ra, s32 i7) = 0;
|
|
virtual void CWD(u32 rt, u32 ra, s32 i7) = 0;
|
|
virtual void CDD(u32 rt, u32 ra, s32 i7) = 0;
|
|
virtual void ROTQBII(u32 rt, u32 ra, s32 i7) = 0;
|
|
virtual void ROTQMBII(u32 rt, u32 ra, s32 i7) = 0;
|
|
virtual void SHLQBII(u32 rt, u32 ra, s32 i7) = 0;
|
|
virtual void ROTQBYI(u32 rt, u32 ra, s32 i7) = 0;
|
|
virtual void ROTQMBYI(u32 rt, u32 ra, s32 i7) = 0;
|
|
virtual void SHLQBYI(u32 rt, u32 ra, s32 i7) = 0;
|
|
virtual void NOP(u32 rt) = 0;
|
|
virtual void CGT(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void XOR(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void CGTH(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void EQV(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void CGTB(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void SUMB(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void HGT(u32 rt, s32 ra, s32 rb) = 0;
|
|
virtual void CLZ(u32 rt, u32 ra) = 0;
|
|
virtual void XSWD(u32 rt, u32 ra) = 0;
|
|
virtual void XSHW(u32 rt, u32 ra) = 0;
|
|
virtual void CNTB(u32 rt, u32 ra) = 0;
|
|
virtual void XSBH(u32 rt, u32 ra) = 0;
|
|
virtual void CLGT(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void ANDC(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void FCGT(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void DFCGT(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void FA(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void FS(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void FM(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void CLGTH(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void ORC(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void FCMGT(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void DFCMGT(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void DFA(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void DFS(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void DFM(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void CLGTB(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void HLGT(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void DFMA(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void DFMS(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void DFNMS(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void DFNMA(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void CEQ(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void MPYHHU(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void ADDX(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void SFX(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void CGX(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void BGX(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void MPYHHA(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void MPYHHAU(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void FSCRRD(u32 rt) = 0;
|
|
virtual void FESD(u32 rt, u32 ra) = 0;
|
|
virtual void FRDS(u32 rt, u32 ra) = 0;
|
|
virtual void FSCRWR(u32 rt, u32 ra) = 0;
|
|
virtual void DFTSV(u32 rt, u32 ra, s32 i7) = 0;
|
|
virtual void FCEQ(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void DFCEQ(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void MPY(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void MPYH(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void MPYHH(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void MPYS(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void CEQH(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void FCMEQ(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void DFCMEQ(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void MPYU(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void CEQB(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void FI(u32 rt, u32 ra, u32 rb) = 0;
|
|
virtual void HEQ(u32 rt, u32 ra, u32 rb) = 0;
|
|
|
|
//0 - 9
|
|
virtual void CFLTS(u32 rt, u32 ra, s32 i8) = 0;
|
|
virtual void CFLTU(u32 rt, u32 ra, s32 i8) = 0;
|
|
virtual void CSFLT(u32 rt, u32 ra, s32 i8) = 0;
|
|
virtual void CUFLT(u32 rt, u32 ra, s32 i8) = 0;
|
|
|
|
//0 - 8
|
|
virtual void BRZ(u32 rt, s32 i16) = 0;
|
|
virtual void STQA(u32 rt, s32 i16) = 0;
|
|
virtual void BRNZ(u32 rt, s32 i16) = 0;
|
|
virtual void BRHZ(u32 rt, s32 i16) = 0;
|
|
virtual void BRHNZ(u32 rt, s32 i16) = 0;
|
|
virtual void STQR(u32 rt, s32 i16) = 0;
|
|
virtual void BRA(s32 i16) = 0;
|
|
virtual void LQA(u32 rt, s32 i16) = 0;
|
|
virtual void BRASL(u32 rt, s32 i16) = 0;
|
|
virtual void BR(s32 i16) = 0;
|
|
virtual void FSMBI(u32 rt, s32 i16) = 0;
|
|
virtual void BRSL(u32 rt, s32 i16) = 0;
|
|
virtual void LQR(u32 rt, s32 i16) = 0;
|
|
virtual void IL(u32 rt, s32 i16) = 0;
|
|
virtual void ILHU(u32 rt, s32 i16) = 0;
|
|
virtual void ILH(u32 rt, s32 i16) = 0;
|
|
virtual void IOHL(u32 rt, s32 i16) = 0;
|
|
|
|
//0 - 7
|
|
virtual void ORI(u32 rt, u32 ra, s32 i10) = 0;
|
|
virtual void ORHI(u32 rt, u32 ra, s32 i10) = 0;
|
|
virtual void ORBI(u32 rt, u32 ra, s32 i10) = 0;
|
|
virtual void SFI(u32 rt, u32 ra, s32 i10) = 0;
|
|
virtual void SFHI(u32 rt, u32 ra, s32 i10) = 0;
|
|
virtual void ANDI(u32 rt, u32 ra, s32 i10) = 0;
|
|
virtual void ANDHI(u32 rt, u32 ra, s32 i10) = 0;
|
|
virtual void ANDBI(u32 rt, u32 ra, s32 i10) = 0;
|
|
virtual void AI(u32 rt, u32 ra, s32 i10) = 0;
|
|
virtual void AHI(u32 rt, u32 ra, s32 i10) = 0;
|
|
virtual void STQD(u32 rt, s32 i10, u32 ra) = 0;
|
|
virtual void LQD(u32 rt, s32 i10, u32 ra) = 0;
|
|
virtual void XORI(u32 rt, u32 ra, s32 i10) = 0;
|
|
virtual void XORHI(u32 rt, u32 ra, s32 i10) = 0;
|
|
virtual void XORBI(u32 rt, u32 ra, s32 i10) = 0;
|
|
virtual void CGTI(u32 rt, u32 ra, s32 i10) = 0;
|
|
virtual void CGTHI(u32 rt, u32 ra, s32 i10) = 0;
|
|
virtual void CGTBI(u32 rt, u32 ra, s32 i10) = 0;
|
|
virtual void HGTI(u32 rt, u32 ra, s32 i10) = 0;
|
|
virtual void CLGTI(u32 rt, u32 ra, s32 i10) = 0;
|
|
virtual void CLGTHI(u32 rt, u32 ra, s32 i10) = 0;
|
|
virtual void CLGTBI(u32 rt, u32 ra, s32 i10) = 0;
|
|
virtual void HLGTI(u32 rt, u32 ra, s32 i10) = 0;
|
|
virtual void MPYI(u32 rt, u32 ra, s32 i10) = 0;
|
|
virtual void MPYUI(u32 rt, u32 ra, s32 i10) = 0;
|
|
virtual void CEQI(u32 rt, u32 ra, s32 i10) = 0;
|
|
virtual void CEQHI(u32 rt, u32 ra, s32 i10) = 0;
|
|
virtual void CEQBI(u32 rt, u32 ra, s32 i10) = 0;
|
|
virtual void HEQI(u32 rt, u32 ra, s32 i10) = 0;
|
|
|
|
//0 - 6
|
|
virtual void HBRA(s32 ro, s32 i16) = 0;
|
|
virtual void HBRR(s32 ro, s32 i16) = 0;
|
|
virtual void ILA(u32 rt, s32 i18) = 0;
|
|
|
|
//0 - 3
|
|
virtual void SELB(u32 rc, u32 ra, u32 rb, u32 rt) = 0;
|
|
virtual void SHUFB(u32 rc, u32 ra, u32 rb, u32 rt) = 0;
|
|
virtual void MPYA(u32 rc, u32 ra, u32 rb, u32 rt) = 0;
|
|
virtual void FNMS(u32 rc, u32 ra, u32 rb, u32 rt) = 0;
|
|
virtual void FMA(u32 rc, u32 ra, u32 rb, u32 rt) = 0;
|
|
virtual void FMS(u32 rc, u32 ra, u32 rb, u32 rt) = 0;
|
|
|
|
virtual void UNK(u32 code, u32 opcode, u32 gcode) = 0;
|
|
};
|