diff --git a/Source/Core/Common/x64Emitter.cpp b/Source/Core/Common/x64Emitter.cpp index 19a982d1c2..42258d1a84 100644 --- a/Source/Core/Common/x64Emitter.cpp +++ b/Source/Core/Common/x64Emitter.cpp @@ -2429,8 +2429,14 @@ void XEmitter::MOVDDUP(X64Reg regOp, const OpArg& arg) } else { - if (!arg.IsSimpleReg(regOp)) + if (!arg.IsSimpleReg()) + { MOVSD(regOp, arg); + } + else if (regOp != arg.GetSimpleReg()) + { + MOVAPD(regOp, arg); + } UNPCKLPD(regOp, R(regOp)); } }