summaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
authorJosJuice <josjuice@gmail.com>2021-11-24 22:39:41 +0100
committerJosJuice <josjuice@gmail.com>2021-11-24 22:39:54 +0100
commit83d2d55aab0a2475dee9e8814943447fd2fae63d (patch)
tree9f1df0b4a084800c3f09533c7eb7b8657eb7b2c6 /Source
parentcc9a75a87bc6e6c28d05535d3dd8877979aab4d0 (diff)
JitArm64: Fix incorrect push size calculation
Diffstat (limited to 'Source')
-rw-r--r--Source/Core/Core/PowerPC/JitArm64/JitArm64_BackPatch.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/Source/Core/Core/PowerPC/JitArm64/JitArm64_BackPatch.cpp b/Source/Core/Core/PowerPC/JitArm64/JitArm64_BackPatch.cpp
index 8bcfac7cbf..ccaafaabbd 100644
--- a/Source/Core/Core/PowerPC/JitArm64/JitArm64_BackPatch.cpp
+++ b/Source/Core/Core/PowerPC/JitArm64/JitArm64_BackPatch.cpp
@@ -225,7 +225,8 @@ void JitArm64::EmitBackpatchRoutine(u32 flags, bool fastmem, bool do_farcode, AR
if (memcheck)
{
const ARM64Reg temp_fpr = fprs_to_push[0] ? ARM64Reg::INVALID_REG : ARM64Reg::Q0;
- const u64 early_push_size = Common::AlignUp(gprs_to_push_early.Count(), 2) * 8;
+ const u64 early_push_count = (gprs_to_push & gprs_to_push_early).Count();
+ const u64 early_push_size = Common::AlignUp(early_push_count, 2) * 8;
WriteConditionalExceptionExit(EXCEPTION_DSI, temp_gpr, temp_fpr, early_push_size);
}