From 1b294e14432858e0567c3114252611eef67ca900 Mon Sep 17 00:00:00 2001 From: "sudonim1@gmail.com" Date: Thu, 7 Jul 2011 22:37:59 +0000 Subject: [PATCH] x86 emitter: fixed three encodings for shrd and shld, as in issue 1076. Thanks to "firnis" for finding this. git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4798 96395faa-99c1-11dd-bbfe-3dabce05a288 --- common/src/x86emitter/x86emitter.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/common/src/x86emitter/x86emitter.cpp b/common/src/x86emitter/x86emitter.cpp index 4fa35408fa..bda52c429e 100644 --- a/common/src/x86emitter/x86emitter.cpp +++ b/common/src/x86emitter/x86emitter.cpp @@ -906,17 +906,17 @@ void xImpl_DwordShift::operator()( const xRegister16& to, const xRegister16& fro void xImpl_DwordShift::operator()( const xRegister32& to, const xRegister32& from, u8 shiftcnt ) const { if( shiftcnt != 0 ) - xOpWrite0F( OpcodeBase, to, from ); + xOpWrite0F( OpcodeBase, to, from, shiftcnt ); } void xImpl_DwordShift::operator()( const xRegister16& to, const xRegister16& from, u8 shiftcnt ) const { if( shiftcnt != 0 ) - xOpWrite0F( 0x66, OpcodeBase, to, from ); + xOpWrite0F( 0x66, OpcodeBase, to, from, shiftcnt ); } void xImpl_DwordShift::operator()( const xIndirectVoid& dest, const xRegister16or32& from, const xRegisterCL& /* clreg */ ) const { - xOpWrite0F( (from->GetOperandSize() == 2) ? 0x66 : 0x00, OpcodeBase, from, dest ); + xOpWrite0F( (from->GetOperandSize() == 2) ? 0x66 : 0x00, OpcodeBase + 1, from, dest ); } void xImpl_DwordShift::operator()( const xIndirectVoid& dest, const xRegister16or32& from, u8 shiftcnt ) const