diff --git a/Source/Core/Core/Src/PowerPC/JitArm32/Jit.cpp b/Source/Core/Core/Src/PowerPC/JitArm32/Jit.cpp index 2c25268c23..a4988f7c17 100644 --- a/Source/Core/Core/Src/PowerPC/JitArm32/Jit.cpp +++ b/Source/Core/Core/Src/PowerPC/JitArm32/Jit.cpp @@ -457,13 +457,20 @@ const u8* JitArm::DoJit(u32 em_address, PPCAnalyst::CodeBuffer *code_buf, JitBlo if (Core::g_CoreStartupParameter.bEnableDebugging) { // Add run count + static const u64 One = 1; ARMReg RA = gpr.GetReg(); ARMReg RB = gpr.GetReg(); + ARMReg VA = fpr.GetReg(); + ARMReg VB = fpr.GetReg(); MOVI2R(RA, (u32)&opinfo->runCount); - LDR(RB, RA); - ADD(RB, RB, 1); - STR(RB, RA); + MOVI2R(RB, (u32)&One); + VLDR(VA, RA, 0); + VLDR(VB, RB, 0); + VADD(I_I64, VA, VA, VB); + VSTR(VA, RA, 0); gpr.Unlock(RA, RB); + fpr.Unlock(VA); + fpr.Unlock(VB); } if (!ops[i].skip) { diff --git a/Source/Core/Core/Src/PowerPC/PPCTables.h b/Source/Core/Core/Src/PowerPC/PPCTables.h index f47df6e552..5b4fb5d11c 100644 --- a/Source/Core/Core/Src/PowerPC/PPCTables.h +++ b/Source/Core/Core/Src/PowerPC/PPCTables.h @@ -77,7 +77,11 @@ struct GekkoOPInfo int type; int flags; int numCyclesMinusOne; +#ifdef _M_ARM + u64 runCount; +#else int runCount; +#endif int compileCount; u32 lastUse; };