From ad51fc7c4b2c7bd5df6aa86d235f573f1d0507dd Mon Sep 17 00:00:00 2001 From: Fiora Date: Sun, 24 Aug 2014 12:45:16 -0700 Subject: [PATCH] JIT64: use xor instead of mov for loading a zero regcache immediate --- Source/Core/Core/PowerPC/Jit64/JitRegCache.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Source/Core/Core/PowerPC/Jit64/JitRegCache.cpp b/Source/Core/Core/PowerPC/Jit64/JitRegCache.cpp index 695d68b578..632e1d1694 100644 --- a/Source/Core/Core/PowerPC/Jit64/JitRegCache.cpp +++ b/Source/Core/Core/PowerPC/Jit64/JitRegCache.cpp @@ -299,7 +299,10 @@ void RegCache::StoreFromRegister(size_t i, FlushMode mode) void GPRRegCache::LoadRegister(size_t preg, X64Reg newLoc) { - emit->MOV(32, ::Gen::R(newLoc), regs[preg].location); + if (regs[preg].location.IsImm() && !regs[preg].location.offset) + emit->XOR(32, ::Gen::R(newLoc), ::Gen::R(newLoc)); + else + emit->MOV(32, ::Gen::R(newLoc), regs[preg].location); } void GPRRegCache::StoreRegister(size_t preg, OpArg newLoc)