On ARM Hosts, increase the instruction run count to 64bit. 32bit is /very/ quickly overflown.
This commit is contained in:
parent
f4b414a9c1
commit
bab3032185
|
@ -457,13 +457,20 @@ const u8* JitArm::DoJit(u32 em_address, PPCAnalyst::CodeBuffer *code_buf, JitBlo
|
||||||
if (Core::g_CoreStartupParameter.bEnableDebugging)
|
if (Core::g_CoreStartupParameter.bEnableDebugging)
|
||||||
{
|
{
|
||||||
// Add run count
|
// Add run count
|
||||||
|
static const u64 One = 1;
|
||||||
ARMReg RA = gpr.GetReg();
|
ARMReg RA = gpr.GetReg();
|
||||||
ARMReg RB = gpr.GetReg();
|
ARMReg RB = gpr.GetReg();
|
||||||
|
ARMReg VA = fpr.GetReg();
|
||||||
|
ARMReg VB = fpr.GetReg();
|
||||||
MOVI2R(RA, (u32)&opinfo->runCount);
|
MOVI2R(RA, (u32)&opinfo->runCount);
|
||||||
LDR(RB, RA);
|
MOVI2R(RB, (u32)&One);
|
||||||
ADD(RB, RB, 1);
|
VLDR(VA, RA, 0);
|
||||||
STR(RB, RA);
|
VLDR(VB, RB, 0);
|
||||||
|
VADD(I_I64, VA, VA, VB);
|
||||||
|
VSTR(VA, RA, 0);
|
||||||
gpr.Unlock(RA, RB);
|
gpr.Unlock(RA, RB);
|
||||||
|
fpr.Unlock(VA);
|
||||||
|
fpr.Unlock(VB);
|
||||||
}
|
}
|
||||||
if (!ops[i].skip)
|
if (!ops[i].skip)
|
||||||
{
|
{
|
||||||
|
|
|
@ -77,7 +77,11 @@ struct GekkoOPInfo
|
||||||
int type;
|
int type;
|
||||||
int flags;
|
int flags;
|
||||||
int numCyclesMinusOne;
|
int numCyclesMinusOne;
|
||||||
|
#ifdef _M_ARM
|
||||||
|
u64 runCount;
|
||||||
|
#else
|
||||||
int runCount;
|
int runCount;
|
||||||
|
#endif
|
||||||
int compileCount;
|
int compileCount;
|
||||||
u32 lastUse;
|
u32 lastUse;
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue