mirror of
https://github.com/libretro/Play-.git
synced 2025-02-23 13:10:32 +00:00
Force the EXL bit to stay active even if it's forced to be cleared with MTC0.
git-svn-id: http://svn.purei.org/purei/trunk@795 b36208d7-6611-0410-8bec-b1987f11c4a2
This commit is contained in:
parent
7d4327555f
commit
bd3b167fde
@ -82,7 +82,18 @@ void CCOP_SCU::MFC0()
|
||||
void CCOP_SCU::MTC0()
|
||||
{
|
||||
m_codeGen->PushRel(offsetof(CMIPS, m_State.nGPR[m_nRT].nV[0]));
|
||||
m_codeGen->PullRel(offsetof(CMIPS, m_State.nCOP0[m_nRD]));
|
||||
|
||||
if(m_nRD == CCOP_SCU::STATUS)
|
||||
{
|
||||
//Keep the EXL bit
|
||||
//This is needed for Valkyrie Profile 2 which resets the EXL bit
|
||||
m_codeGen->PushRel(offsetof(CMIPS, m_State.nCOP0[m_nRD]));
|
||||
m_codeGen->PushCst(CMIPS::STATUS_EXL);
|
||||
m_codeGen->And();
|
||||
m_codeGen->Or();
|
||||
}
|
||||
|
||||
m_codeGen->PullRel(offsetof(CMIPS, m_State.nCOP0[m_nRD]));
|
||||
}
|
||||
|
||||
//08
|
||||
|
Loading…
x
Reference in New Issue
Block a user