From 83d2d55aab0a2475dee9e8814943447fd2fae63d Mon Sep 17 00:00:00 2001 From: JosJuice Date: Wed, 24 Nov 2021 22:39:41 +0100 Subject: [PATCH] JitArm64: Fix incorrect push size calculation --- Source/Core/Core/PowerPC/JitArm64/JitArm64_BackPatch.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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); }