mirror of
https://github.com/libretro/ppsspp.git
synced 2024-12-04 15:06:25 +00:00
Fix to VFPU register allocation. Fixes #7174
GetFreeXRegs(_,_,true) invalidates registers it can see on spill, but it can't see all the registers in the array due to how we call it so we have to invalidate the rest ourselves. Not doing so can get it to use the same register twice.
This commit is contained in:
parent
eaa1f0c23d
commit
a9b7656f93
@ -121,7 +121,7 @@ JitOptions::JitOptions()
|
|||||||
continueBranches = false;
|
continueBranches = false;
|
||||||
continueJumps = false;
|
continueJumps = false;
|
||||||
continueMaxInstructions = 300;
|
continueMaxInstructions = 300;
|
||||||
enableVFPUSIMD = false;
|
enableVFPUSIMD = true;
|
||||||
// Set by Asm if needed.
|
// Set by Asm if needed.
|
||||||
reserveR15ForAsm = false;
|
reserveR15ForAsm = false;
|
||||||
}
|
}
|
||||||
|
@ -354,6 +354,9 @@ X64Reg FPURegCache::LoadRegsVS(const u8 *v, int n) {
|
|||||||
for (int i = 0; i < 4; ++i) {
|
for (int i = 0; i < 4; ++i) {
|
||||||
xrsLoaded[i] = false;
|
xrsLoaded[i] = false;
|
||||||
}
|
}
|
||||||
|
for (int i = 2; i < n; ++i){
|
||||||
|
xrs[i] = INVALID_REG;
|
||||||
|
}
|
||||||
regsLoaded = 0;
|
regsLoaded = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user