From 803148b8cae152f86d104967236937059efc7c23 Mon Sep 17 00:00:00 2001 From: Sacha Date: Fri, 8 Nov 2013 16:07:05 +1000 Subject: [PATCH] ARMv6: Fix offsets > 4096 for litpool. More aggressive check. Somehow Scooby Doo gets to offsets of ~4200 unless i drop the threshold down to ~3200. Not sure why the offset can jump by so much in one instruction. Makes Scooby Doo playable now instead of showing a blue screen in the main game. Likely affects other games. --- Core/MIPS/ARM/ArmJit.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Core/MIPS/ARM/ArmJit.cpp b/Core/MIPS/ARM/ArmJit.cpp index 0c32131b66..fae1cb8a43 100644 --- a/Core/MIPS/ARM/ArmJit.cpp +++ b/Core/MIPS/ARM/ArmJit.cpp @@ -240,7 +240,7 @@ const u8 *Jit::DoJit(u32 em_address, JitBlock *b) js.compilerPC += 4; numInstructions++; - if (!cpu_info.bArmV7 && (GetCodePtr() - b->checkedEntry - partialFlushOffset) > 4020) + if (!cpu_info.bArmV7 && (GetCodePtr() - b->checkedEntry - partialFlushOffset) > 3200) { // We need to prematurely flush as we are out of range FixupBranch skip = B_CC(CC_AL); @@ -414,4 +414,4 @@ void Jit::Comp_DoNothing(MIPSOpcode op) { } // mov eax, [table+eax] // mov dreg, [eax+offreg] -} \ No newline at end of file +}