From 8b53385c5433fb0c3d78d01abc38f10cfddfa294 Mon Sep 17 00:00:00 2001 From: skidau Date: Mon, 13 Jan 2014 22:18:19 +1100 Subject: [PATCH] Added a check for a redundant mov in the fastmem writes code. Fixes issue 6905. --- Source/Core/Core/PowerPC/JitCommon/JitBackpatch.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/Source/Core/Core/PowerPC/JitCommon/JitBackpatch.cpp b/Source/Core/Core/PowerPC/JitCommon/JitBackpatch.cpp index b7cc031c99..828d8a6a31 100644 --- a/Source/Core/Core/PowerPC/JitCommon/JitBackpatch.cpp +++ b/Source/Core/Core/PowerPC/JitCommon/JitBackpatch.cpp @@ -117,13 +117,17 @@ const u8 *TrampolineCache::GetWriteTrampoline(const InstructionInfo &info, u32 r PanicAlert("Incorrect use of SafeWriteRegToReg"); if (addrReg != ABI_PARAM1) { - MOV(64, R(ABI_PARAM1), R((X64Reg)dataReg)); - MOV(64, R(ABI_PARAM2), R((X64Reg)addrReg)); + if (ABI_PARAM1 != dataReg) + MOV(64, R(ABI_PARAM1), R((X64Reg)dataReg)); + if (ABI_PARAM2 != addrReg) + MOV(64, R(ABI_PARAM2), R((X64Reg)addrReg)); } else { - MOV(64, R(ABI_PARAM2), R((X64Reg)addrReg)); - MOV(64, R(ABI_PARAM1), R((X64Reg)dataReg)); + if (ABI_PARAM2 != addrReg) + MOV(64, R(ABI_PARAM2), R((X64Reg)addrReg)); + if (ABI_PARAM1 != dataReg) + MOV(64, R(ABI_PARAM1), R((X64Reg)dataReg)); } if (info.displacement)