diff options
| author | JosJuice <josjuice@gmail.com> | 2022-10-15 17:21:38 +0200 |
|---|---|---|
| committer | JosJuice <josjuice@gmail.com> | 2022-10-15 17:21:38 +0200 |
| commit | ec6a4115eb2754fcb916c5c2d9f458a0b2e249bb (patch) | |
| tree | 0fd6be758483bb2150a9e46095d0836f5c44e3e2 /Source/Core | |
| parent | 3af74d82a0c32cf171a8c1a3a2aa2547b70df791 (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.cpp | 2 |
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)); |
