From 038ffea369bbe65a7436c81f6ff7fb12d14ee46d Mon Sep 17 00:00:00 2001 From: Tillmann Karras Date: Wed, 13 Nov 2013 08:03:18 +0100 Subject: [PATCH] Jit64: don't flush clean FPRs --- Source/Core/Core/Src/PowerPC/Jit64/JitRegCache.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Source/Core/Core/Src/PowerPC/Jit64/JitRegCache.cpp b/Source/Core/Core/Src/PowerPC/Jit64/JitRegCache.cpp index f804877627..b2317c9394 100644 --- a/Source/Core/Core/Src/PowerPC/Jit64/JitRegCache.cpp +++ b/Source/Core/Core/Src/PowerPC/Jit64/JitRegCache.cpp @@ -351,11 +351,12 @@ void FPURegCache::StoreFromRegister(int i) { X64Reg xr = regs[i].location.GetSimpleReg(); _assert_msg_(DYNA_REC, xr < NUMXREGS, "WTF - store - invalid reg"); + OpArg newLoc = GetDefaultLocation(i); + if (xregs[xr].dirty) + emit->MOVAPD(newLoc, xr); xregs[xr].free = true; xregs[xr].dirty = false; xregs[xr].ppcReg = -1; - OpArg newLoc = GetDefaultLocation(i); - emit->MOVAPD(newLoc, xr); regs[i].location = newLoc; regs[i].away = false; }