mirror of
https://github.com/libretro/Play-.git
synced 2025-03-04 01:07:01 +00:00
Prevent ADDi from clobbering VF0 and added flags check.
This commit is contained in:
parent
5b2ce2f19d
commit
4fb2230f3e
@ -165,7 +165,7 @@ void CMA_VU::CUpper::MADDq()
|
||||
//22
|
||||
void CMA_VU::CUpper::ADDi()
|
||||
{
|
||||
VUShared::ADDi(m_codeGen, m_nDest, m_nFD, m_nFS);
|
||||
VUShared::ADDi(m_codeGen, m_nDest, m_nFD, m_nFS, m_relativePipeTime);
|
||||
}
|
||||
|
||||
//23
|
||||
|
@ -352,8 +352,14 @@ void VUShared::ADDbc(CMipsJitter* codeGen, uint8 nDest, uint8 nFd, uint8 nFs, ui
|
||||
TestSZFlags(codeGen, nDest, offsetof(CMIPS, m_State.nCOP2[nFd]), relativePipeTime);
|
||||
}
|
||||
|
||||
void VUShared::ADDi(CMipsJitter* codeGen, uint8 nDest, uint8 nFd, uint8 nFs)
|
||||
void VUShared::ADDi(CMipsJitter* codeGen, uint8 nDest, uint8 nFd, uint8 nFs, uint32 relativePipeTime)
|
||||
{
|
||||
if(nFd == 0)
|
||||
{
|
||||
//Use the temporary register to store the result
|
||||
nFd = 32;
|
||||
}
|
||||
|
||||
#if 1
|
||||
for(unsigned int i = 0; i < 4; i++)
|
||||
{
|
||||
@ -370,6 +376,8 @@ void VUShared::ADDi(CMipsJitter* codeGen, uint8 nDest, uint8 nFd, uint8 nFs)
|
||||
codeGen->MD_AddS();
|
||||
PullVector(codeGen, nDest, offsetof(CMIPS, m_State.nCOP2[nFd]));
|
||||
#endif
|
||||
|
||||
TestSZFlags(codeGen, nDest, offsetof(CMIPS, m_State.nCOP2[nFd]), relativePipeTime);
|
||||
}
|
||||
|
||||
void VUShared::ADDq(CMipsJitter* codeGen, uint8 nDest, uint8 nFd, uint8 nFs)
|
||||
|
@ -84,7 +84,7 @@ namespace VUShared
|
||||
void ABS(CMipsJitter*, uint8, uint8, uint8);
|
||||
void ADD(CMipsJitter*, uint8, uint8, uint8, uint8, uint32);
|
||||
void ADDbc(CMipsJitter*, uint8, uint8, uint8, uint8, uint8, uint32);
|
||||
void ADDi(CMipsJitter*, uint8, uint8, uint8);
|
||||
void ADDi(CMipsJitter*, uint8, uint8, uint8, uint32);
|
||||
void ADDq(CMipsJitter*, uint8, uint8, uint8);
|
||||
void ADDA(CMipsJitter*, uint8, uint8, uint8);
|
||||
void ADDAbc(CMipsJitter*, uint8, uint8, uint8, uint8);
|
||||
|
Loading…
x
Reference in New Issue
Block a user