Skip to content

Commit

Permalink
Disables "ForceCheck" on jit invalidation on ARM32, introduced in #16194
Browse files Browse the repository at this point in the history


I'm not sure if we should call it at all here, but at least this makes
games work again on ARM32. Will need more investigation.
  • Loading branch information
hrydgard committed Oct 11, 2022
1 parent baa9451 commit bc28f54
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 1 deletion.
2 changes: 2 additions & 0 deletions Core/CoreTiming.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -585,6 +585,8 @@ void ForceCheck()
int cyclesExecuted = slicelength - currentMIPS->downcount;
globalTimer += cyclesExecuted;
// This will cause us to check for new events immediately.
// NOTE: This causes problems on ARM32 in certain contexts due to jo.downcountInRegister.
// Not 100% sure what's going on there yet.
currentMIPS->downcount = -1;
// But let's not eat a bunch more time in Advance() because of this.
slicelength = -1;
Expand Down
2 changes: 1 addition & 1 deletion Core/MIPS/JitCommon/JitState.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ namespace MIPSComp {

// ARM only
downcountInRegister = true;
useNEONVFPU = false; // true
useNEONVFPU = false;
if (Disabled(JitDisable::SIMD))
useNEONVFPU = false;

Expand Down
4 changes: 4 additions & 0 deletions Core/MIPS/MIPS.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -370,7 +370,9 @@ void MIPSState::InvalidateICache(u32 address, int length) {
if (coreState == CORE_RUNNING || insideJit) {
pendingClears.emplace_back(address, length);
hasPendingClears = true;
#if !PPSSPP_ARCH(ARM) // See comment in ForceCheck
CoreTiming::ForceCheck();
#endif
} else {
MIPSComp::jit->InvalidateCacheAt(address, length);
}
Expand All @@ -383,7 +385,9 @@ void MIPSState::ClearJitCache() {
if (coreState == CORE_RUNNING || insideJit) {
pendingClears.emplace_back(0, 0);
hasPendingClears = true;
#if !PPSSPP_ARCH(ARM) // See comment in ForceCheck
CoreTiming::ForceCheck();
#endif
} else {
MIPSComp::jit->ClearCache();
}
Expand Down

0 comments on commit bc28f54

Please sign in to comment.