Added missing VU operand check.

This commit is contained in:
Jean-Philip Desjardins 2015-04-04 21:15:38 -04:00
parent 1651da80f2
commit 206d6a019e
3 changed files with 11 additions and 1 deletions

View File

@ -337,7 +337,7 @@ VUINSTRUCTION CMA_VU::CUpper::m_cVuReflVX0[32] =
{ "ITOF0", NULL, ReflOpAffFtFs },
{ "FTOI0", NULL, ReflOpAffFtFs },
{ "MULA", NULL, ReflOpAffWrARdFtFs },
{ "MULA", NULL, NULL },
{ "MULA", NULL, ReflOpAffWrARdFsQ },
//0x08
{ NULL, NULL, NULL },
{ NULL, NULL, NULL },

View File

@ -199,6 +199,7 @@ namespace VUShared
void ReflOpAffQ(VUINSTRUCTION*, CMIPS*, uint32, uint32, OPERANDSET&);
void ReflOpAffWrARdFtFs(VUINSTRUCTION*, CMIPS*, uint32, uint32, OPERANDSET&);
void ReflOpAffWrARdFsQ(VUINSTRUCTION*, CMIPS*, uint32, uint32, OPERANDSET&);
void ReflOpAffWrCfRdFtFs(VUINSTRUCTION*, CMIPS*, uint32, uint32, OPERANDSET&);
void ReflOpAffWrFdRdFtFs(VUINSTRUCTION*, CMIPS*, uint32, uint32, OPERANDSET&);
void ReflOpAffWrQRdFt(VUINSTRUCTION*, CMIPS*, uint32, uint32, OPERANDSET&);

View File

@ -364,6 +364,15 @@ void VUShared::ReflOpAffWrARdFtFs(VUINSTRUCTION*, CMIPS*, uint32, uint32 opcode,
operandSet.readF1 = fs;
}
void VUShared::ReflOpAffWrARdFsQ(VUINSTRUCTION*, CMIPS*, uint32, uint32 opcode, OPERANDSET& operandSet)
{
auto fs = static_cast<uint8>((opcode >> 11) & 0x001F);
//TODO: Write A
operandSet.readF0 = fs;
operandSet.readQ = true;
}
void VUShared::ReflOpAffWrCfRdFtFs(VUINSTRUCTION*, CMIPS*, uint32, uint32 opcode, OPERANDSET& operandSet)
{
auto ft = static_cast<uint8>((opcode >> 16) & 0x001F);