summaryrefslogtreecommitdiff
path: root/Source/Core
diff options
context:
space:
mode:
authorJosJuice <josjuice@gmail.com>2022-10-15 17:21:38 +0200
committerJosJuice <josjuice@gmail.com>2022-10-15 17:21:38 +0200
commitec6a4115eb2754fcb916c5c2d9f458a0b2e249bb (patch)
tree0fd6be758483bb2150a9e46095d0836f5c44e3e2 /Source/Core
parent3af74d82a0c32cf171a8c1a3a2aa2547b70df791 (diff)
Jit64: Jump to dispatcher_no_check from InitializeSpeculativeConstants
Jumping to `dispatcher` requires first subtracting the downcount, otherwise `dispatcher` may unpredictably jump to CoreTiming::Advance, which could break determinism compatibility with JitArm64. We should jump to `dispatcher_no_check` instead.
Diffstat (limited to 'Source/Core')
-rw-r--r--Source/Core/Core/PowerPC/Jit64/Jit.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/Source/Core/Core/PowerPC/Jit64/Jit.cpp b/Source/Core/Core/PowerPC/Jit64/Jit.cpp
index 96f5905c68..698491d54a 100644
--- a/Source/Core/Core/PowerPC/Jit64/Jit.cpp
+++ b/Source/Core/Core/PowerPC/Jit64/Jit.cpp
@@ -1282,7 +1282,7 @@ void Jit64::IntializeSpeculativeConstants()
ABI_CallFunctionC(JitInterface::CompileExceptionCheck,
static_cast<u32>(JitInterface::ExceptionType::SpeculativeConstants));
ABI_PopRegistersAndAdjustStack({}, 0);
- JMP(asm_routines.dispatcher, true);
+ JMP(asm_routines.dispatcher_no_check, true);
SwitchToNearCode();
}
CMP(32, PPCSTATE(gpr[i]), Imm32(compileTimeValue));