From f9dd13a3092d414836dd99119dbf70952655d22a Mon Sep 17 00:00:00 2001 From: JosJuice Date: Sun, 5 Nov 2023 09:21:58 +0100 Subject: [PATCH] JitArm64: Preserve dirty flag when materializing immediate Before dbf5dca, the dirty flag had no meaning for an immediate value, so we made sure to always set the dirty flag when switching a register from Immediate to Register. But after dbf5dca, that is no longer the case. If an immediate is marked as not dirty, we can keep the register marked as not dirty after materializing the value. This way we skip having to write it back to ppcState later. --- Source/Core/Core/PowerPC/JitArm64/JitArm64_RegCache.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/Source/Core/Core/PowerPC/JitArm64/JitArm64_RegCache.cpp b/Source/Core/Core/PowerPC/JitArm64/JitArm64_RegCache.cpp index 96c1e356db..ec9562f46c 100644 --- a/Source/Core/Core/PowerPC/JitArm64/JitArm64_RegCache.cpp +++ b/Source/Core/Core/PowerPC/JitArm64/JitArm64_RegCache.cpp @@ -317,7 +317,6 @@ ARM64Reg Arm64GPRCache::R(const GuestRegInfo& guest_reg) ARM64Reg host_reg = bitsize != 64 ? GetReg() : EncodeRegTo64(GetReg()); m_emit->MOVI2R(host_reg, reg.GetImm()); reg.Load(host_reg); - reg.SetDirty(true); return host_reg; } break;