mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-01-26 15:55:31 +01:00
Disable JitArm64's inline timebase implemenation, as it's incorrect.
The interpeted version is correct.
This commit is contained in:
parent
27beef1ff4
commit
d61baef2f6
@ -224,6 +224,10 @@ void JitArm64::mfspr(UGeckoInstruction inst)
|
|||||||
case SPR_TL:
|
case SPR_TL:
|
||||||
case SPR_TU:
|
case SPR_TU:
|
||||||
{
|
{
|
||||||
|
// The inline implementation here is inaccurate and out of date as of PR3601
|
||||||
|
FALLBACK_IF(true); // Fallback to interpreted version.
|
||||||
|
|
||||||
|
/*
|
||||||
ARM64Reg WA = gpr.GetReg();
|
ARM64Reg WA = gpr.GetReg();
|
||||||
ARM64Reg WB = gpr.GetReg();
|
ARM64Reg WB = gpr.GetReg();
|
||||||
ARM64Reg XA = EncodeRegTo64(WA);
|
ARM64Reg XA = EncodeRegTo64(WA);
|
||||||
@ -231,9 +235,9 @@ void JitArm64::mfspr(UGeckoInstruction inst)
|
|||||||
|
|
||||||
// An inline implementation of CoreTiming::GetFakeTimeBase, since in timer-heavy games the
|
// An inline implementation of CoreTiming::GetFakeTimeBase, since in timer-heavy games the
|
||||||
// cost of calling out to C for this is actually significant.
|
// cost of calling out to C for this is actually significant.
|
||||||
MOVI2R(XA, (u64)&CoreTiming::globalTimer);
|
MOVI2R(XA, (u64)&CoreTiming::g_globalTimer);
|
||||||
LDR(INDEX_UNSIGNED, XA, XA, 0);
|
LDR(INDEX_UNSIGNED, XA, XA, 0);
|
||||||
MOVI2R(XB, (u64)&CoreTiming::fakeTBStartTicks);
|
MOVI2R(XB, (u64)&CoreTiming::g_fakeTBStartTicks);
|
||||||
LDR(INDEX_UNSIGNED, XB, XB, 0);
|
LDR(INDEX_UNSIGNED, XB, XB, 0);
|
||||||
SUB(XA, XA, XB);
|
SUB(XA, XA, XB);
|
||||||
|
|
||||||
@ -247,7 +251,7 @@ void JitArm64::mfspr(UGeckoInstruction inst)
|
|||||||
ADD(XB, XB, 1);
|
ADD(XB, XB, 1);
|
||||||
UMULH(XA, XA, XB);
|
UMULH(XA, XA, XB);
|
||||||
|
|
||||||
MOVI2R(XB, (u64)&CoreTiming::fakeTBStartValue);
|
MOVI2R(XB, (u64)&CoreTiming::g_fakeTBStartValue);
|
||||||
LDR(INDEX_UNSIGNED, XB, XB, 0);
|
LDR(INDEX_UNSIGNED, XB, XB, 0);
|
||||||
ADD(XA, XB, XA, ArithOption(XA, ST_LSR, 3));
|
ADD(XA, XB, XA, ArithOption(XA, ST_LSR, 3));
|
||||||
STR(INDEX_UNSIGNED, XA, PPC_REG, PPCSTATE_OFF(spr[SPR_TL]));
|
STR(INDEX_UNSIGNED, XA, PPC_REG, PPCSTATE_OFF(spr[SPR_TL]));
|
||||||
@ -285,7 +289,7 @@ void JitArm64::mfspr(UGeckoInstruction inst)
|
|||||||
ORR(EncodeRegTo64(gpr.R(d)), SP, XA, ArithOption(XA, ST_LSR, 32));
|
ORR(EncodeRegTo64(gpr.R(d)), SP, XA, ArithOption(XA, ST_LSR, 32));
|
||||||
else
|
else
|
||||||
MOV(gpr.R(d), WA);
|
MOV(gpr.R(d), WA);
|
||||||
gpr.Unlock(WA, WB);
|
gpr.Unlock(WA, WB);*/
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case SPR_XER:
|
case SPR_XER:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user