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
This commit is contained in:
sudonim1@gmail.com 2011-07-07 22:37:59 +00:00
parent 6b809a5210
commit 1b294e1443
1 changed files with 3 additions and 3 deletions

View File

@ -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