microVU: Tweaked some stuff from my last commit.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1445 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
cottonvibes 2009-06-30 20:42:25 +00:00
parent 95579258db
commit 60e1fcffb7
1 changed files with 7 additions and 7 deletions

View File

@ -96,7 +96,6 @@ microVUt(void) mVUsetupRange(mV, s32 pc, bool isStartPC) {
&& (pc <= mVUcurProg.ranges.range[i][1])) { return; } && (pc <= mVUcurProg.ranges.range[i][1])) { return; }
} }
const u32 endMem = mVU->microMemSize-8;
mVUcheckIsSame(mVU); mVUcheckIsSame(mVU);
if (isStartPC) { if (isStartPC) {
@ -107,7 +106,7 @@ microVUt(void) mVUsetupRange(mV, s32 pc, bool isStartPC) {
else { else {
mVUcurProg.ranges.total = 0; mVUcurProg.ranges.total = 0;
mVUrange[0] = 0; mVUrange[0] = 0;
mVUrange[1] = endMem; mVUrange[1] = mVU->microMemSize - 8;
DevCon::Status("microVU%d: Prog Range List Full", params mVU->index); DevCon::Status("microVU%d: Prog Range List Full", params mVU->index);
} }
} }
@ -115,9 +114,10 @@ microVUt(void) mVUsetupRange(mV, s32 pc, bool isStartPC) {
if (mVUrange[0] <= pc) { if (mVUrange[0] <= pc) {
mVUrange[1] = pc; mVUrange[1] = pc;
for (int i = 0; i <= (mVUcurProg.ranges.total-1); i++) { for (int i = 0; i <= (mVUcurProg.ranges.total-1); i++) {
if ((mVUrange[0] == mVUcurProg.ranges.range[i][1]) int rStart = (mVUrange[0] < 8) ? 0 : (mVUrange[0] - 8);
||(((mVUrange[0]-8)&endMem) == mVUcurProg.ranges.range[i][1])) { int rEnd = pc;
if (mVUcurProg.ranges.range[i][1] > pc) { continue; } if((mVUcurProg.ranges.range[i][1] >= rStart)
&& (mVUcurProg.ranges.range[i][1] <= rEnd)){
mVUcurProg.ranges.range[i][1] = pc; mVUcurProg.ranges.range[i][1] = pc;
mVUrange[0] = -1; mVUrange[0] = -1;
mVUrange[1] = -1; mVUrange[1] = -1;
@ -137,7 +137,7 @@ microVUt(void) mVUsetupRange(mV, s32 pc, bool isStartPC) {
else { else {
mVUcurProg.ranges.total = 0; mVUcurProg.ranges.total = 0;
mVUrange[0] = 0; mVUrange[0] = 0;
mVUrange[1] = endMem; mVUrange[1] = mVU->microMemSize - 8;
DevCon::Status("microVU%d: Prog Range List Full", params mVU->index); DevCon::Status("microVU%d: Prog Range List Full", params mVU->index);
} }
} }
@ -488,7 +488,7 @@ microVUr(void*) mVUcompile(microVU* mVU, u32 startPC, uptr pState) {
microVUt(void*) mVUblockFetch(microVU* mVU, u32 startPC, uptr pState) { microVUt(void*) mVUblockFetch(microVU* mVU, u32 startPC, uptr pState) {
using namespace x86Emitter; using namespace x86Emitter;
if (startPC > mVU->microMemSize-8) { DevCon::Error("microVU%d: invalid startPC", params mVU->index); } if (startPC > mVU->microMemSize-8) { DevCon::Error("microVU%d: invalid startPC [%04x]", params mVU->index, startPC); }
startPC &= mVU->microMemSize-8; startPC &= mVU->microMemSize-8;
blockCreate(startPC/8); blockCreate(startPC/8);