microVU: Fixed 1-Op flag linking (hopefully) if it kills stuff let me know and ill revert. Hopefully it'll help MGS2 a bit, but no guarantees.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5566 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
refraction@gmail.com 2013-02-21 01:07:52 +00:00
parent a1bc42fa92
commit adc075a098
1 changed files with 2 additions and 1 deletions

View File

@ -407,7 +407,7 @@ __fi void mVUinitFirstPass(microVU& mVU, uptr pState, u8* thisPtr) {
} }
mVUblock.x86ptrStart = thisPtr; mVUblock.x86ptrStart = thisPtr;
mVUpBlock = mVUblocks[mVUstartPC/2]->add(&mVUblock); // Add this block to block manager mVUpBlock = mVUblocks[mVUstartPC/2]->add(&mVUblock); // Add this block to block manager
mVUregs.needExactMatch = /*(mVUregs.blockType||noFlagOpts)?7:*/0; // ToDo: Fix 1-Op block flag linking (MGS2:Demo/Sly Cooper) mVUregs.needExactMatch = (isEvilBlock)?7:0; // ToDo: Fix 1-Op block flag linking (MGS2:Demo/Sly Cooper)
mVUregs.blockType = 0; mVUregs.blockType = 0;
mVUregs.viBackUp = 0; mVUregs.viBackUp = 0;
mVUregs.flagInfo = 0; mVUregs.flagInfo = 0;
@ -504,6 +504,7 @@ void* mVUcompile(microVU& mVU, u32 startPC, uptr pState) {
elif (branch == 1) { branch = 2; } elif (branch == 1) { branch = 2; }
if (mVUbranch) { mVUsetFlagInfo(mVU); eBitWarning(mVU); branch = 3; mVUbranch = 0; } if (mVUbranch) { mVUsetFlagInfo(mVU); eBitWarning(mVU); branch = 3; mVUbranch = 0; }
incPC(1); incPC(1);
if(isEvilBlock){ mVUcount++; break; } //Need a count, else the flags do not update.
} }
// Fix up vi15 const info for propagation through blocks // Fix up vi15 const info for propagation through blocks