Fixed bugs for SSE3E execution and decoding

This commit is contained in:
Stanislav Shwartsman 2007-01-25 21:44:35 +00:00
parent d54c63e9cb
commit acd1a05f6f
2 changed files with 5 additions and 5 deletions

View File

@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////
// $Id: fetchdecode.cc,v 1.101 2007-01-25 19:09:36 sshwarts Exp $
// $Id: fetchdecode.cc,v 1.102 2007-01-25 21:44:35 sshwarts Exp $
/////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2001 MandrakeSoft S.A.
@ -1307,13 +1307,13 @@ static const BxOpcodeInfo_t BxOpcodeInfo[512*2] = {
/* 0F 36 */ { 0, &BX_CPU_C::BxError },
/* 0F 37 */ { 0, &BX_CPU_C::BxError },
#if BX_SUPPORT_SSE3E || BX_SUPPORT_SSE >= 4
/* 0F 38 */ { BxAnother | Bx3ByteOpcode, NULL, BxOpcode3ByteTableA4 }, // 3-byte escape
/* 0F 38 */ { BxAnother | Bx3ByteOpcode | Bx3ByteOpTable, NULL, BxOpcode3ByteTableA4 }, // 3-byte escape
#else
/* 0F 38 */ { 0, &BX_CPU_C::BxError },
#endif
/* 0F 39 */ { 0, &BX_CPU_C::BxError },
#if BX_SUPPORT_SSE3E || BX_SUPPORT_SSE >= 4
/* 0F 3A */ { BxAnother | Bx3ByteOpcode, NULL, BxOpcode3ByteTableA5 }, // 3-byte escape
/* 0F 3A */ { BxAnother | Bx3ByteOpcode | Bx3ByteOpTable, NULL, BxOpcode3ByteTableA5 }, // 3-byte escape
#else
/* 0F 3A */ { 0, &BX_CPU_C::BxError },
#endif

View File

@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////
// $Id: mmx.cc,v 1.55 2007-01-25 19:09:41 sshwarts Exp $
// $Id: mmx.cc,v 1.56 2007-01-25 21:44:35 sshwarts Exp $
/////////////////////////////////////////////////////////////////////////
//
// Copyright (c) 2002 Stanislav Shwartsman
@ -140,7 +140,7 @@ void BX_CPU_C::PSHUFB_PqQq(bxInstruction_c *i)
if (mask & 0x80)
result.mmxubyte(j) = 0;
else
result.mmxubyte(j) = op1.mmxubyte(mask & 0xf);
result.mmxubyte(j) = op1.mmxubyte(mask & 0x7);
}
BX_WRITE_MMX_REG(i->nnn(), result);