Clean Peter's commit with MOVNTDQ instruction implementation

This commit is contained in:
Stanislav Shwartsman 2002-12-20 09:11:39 +00:00
parent c173034663
commit 4906ffef7c
4 changed files with 17 additions and 35 deletions

View File

@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////
// $Id: cpu.h,v 1.122 2002-12-19 05:53:17 bdenney Exp $
// $Id: cpu.h,v 1.123 2002-12-20 09:11:37 sshwarts Exp $
/////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2001 MandrakeSoft S.A.
@ -2205,7 +2205,6 @@ union {
BX_SMF void CVTTPD2DQ_VqWpd(bxInstruction_c *i);
BX_SMF void CVTPD2DQ_VqWpd(bxInstruction_c *i);
BX_SMF void CVTDQ2PD_VpdWq(bxInstruction_c *i);
BX_SMF void MOVNTDQ_MdqVdq(bxInstruction_c *i);
BX_SMF void PSUBSB_VdqWdq(bxInstruction_c *i);
BX_SMF void PSUBSW_VdqWdq(bxInstruction_c *i);
BX_SMF void PMINSW_VdqWdq(bxInstruction_c *i);

View File

@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////
// $Id: fetchdecode.cc,v 1.38 2002-12-19 05:53:17 bdenney Exp $
// $Id: fetchdecode.cc,v 1.39 2002-12-20 09:11:37 sshwarts Exp $
/////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2001 MandrakeSoft S.A.
@ -223,15 +223,17 @@ MOVAPS_VpsWps (0f 28) = MOVAPD_VpdWpd (66 0f 28) = MOVDQA_VdqWdq (66 0f 6f)
MOVAPS_WpsVps (0f 29) = MOVAPD_WpdVpd (66 0f 29) = MOVDQA_WdqVdq (66 0f 7f)
MOVNTPS_MdqVps (0f 2b) = MOVNTPD_MdqVpd (66 0f 2b)
MOVNTPS_MdqVps (0f 2b) = MOVNTDQ_MdqVdq (66 0f e7)
MOVLPS_VpsMq (0f 12) = MOVLPD_VsdMq (66 0f 12)
MOVLPS_MqVps (0f 13) = MOVLPD_MqVsd (66 0f 13)
MOVHPS_VpsMq (0f 16) = MOVHPD_VpdMq (66 0f 16)
MOVHPS_MqVps (0f 17) = MOVHPD_MqVpd (66 0f 17)
ANDPS_VpsWps (0f 54) = ANDPD_VpdWpd (66 0f 54) = PAND_VpdWpd (66 0f db)
ANDNPS_VpsWps (0f 55) = ANDNPD_VpdWpd (66 0f 55) = PANDN_VpdWpd (66 0f df)
ORPS_VpsWps (0f 56) = ORPD_VpdWpd (66 0f 56) = POR_VpdWpd (66 0f eb)
XORPS_VpsWps (0f 57) = XORPD_VpdWpd (66 0f 57) = PXOR_VpdWpd (66 0f ef)
ANDPS_VpsWps (0f 54) = ANDPD_VpdWpd (66 0f 54) = PAND_VdqWdq (66 0f db)
ANDNPS_VpsWps (0f 55) = ANDNPD_VpdWpd (66 0f 55) = PANDN_VdqWdq (66 0f df)
ORPS_VpsWps (0f 56) = ORPD_VpdWpd (66 0f 56) = POR_VdqWdq (66 0f eb)
XORPS_VpsWps (0f 57) = XORPD_VpdWpd (66 0f 57) = PXOR_VdqWdq (66 0f ef)
*/
@ -804,7 +806,7 @@ static BxOpcodeInfo_t BxOpcodeGroupSSE_0fe6[4] = {
static BxOpcodeInfo_t BxOpcodeGroupSSE_0fe7[4] = {
/* -- */ { 0, &BX_CPU_C::MOVNTQ_MqPq },
/* 66 */ { 0, &BX_CPU_C::MOVNTDQ_MdqVdq },
/* 66 */ { 0, &BX_CPU_C::MOVNTPS_MdqVps },
/* F2 */ { 0, &BX_CPU_C::BxError },
/* F3 */ { 0, &BX_CPU_C::BxError }
};

View File

@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////
// $Id: fetchdecode64.cc,v 1.35 2002-12-20 07:11:29 ptrumpet Exp $
// $Id: fetchdecode64.cc,v 1.36 2002-12-20 09:11:38 sshwarts Exp $
/////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2001 MandrakeSoft S.A.
@ -291,15 +291,17 @@ MOVAPS_VpsWps (0f 28) = MOVAPD_VpdWpd (66 0f 28) = MOVDQA_VdqWdq (66 0f 6f)
MOVAPS_WpsVps (0f 29) = MOVAPD_WpdVpd (66 0f 29) = MOVDQA_WdqVdq (66 0f 7f)
MOVNTPS_MdqVps (0f 2b) = MOVNTPD_MdqVpd (66 0f 2b)
MOVNTPS_MdqVps (0f 2b) = MOVNTDQ_MdqVdq (66 0f e7)
MOVLPS_VpsMq (0f 12) = MOVLPD_VsdMq (66 0f 12)
MOVLPS_MqVps (0f 13) = MOVLPD_MqVsd (66 0f 13)
MOVHPS_VpsMq (0f 16) = MOVHPD_VpdMq (66 0f 16)
MOVHPS_MqVps (0f 17) = MOVHPD_MqVpd (66 0f 17)
ANDPS_VpsWps (0f 54) = ANDPD_VpdWpd (66 0f 54) = PAND_VpdWpd (66 0f db)
ANDNPS_VpsWps (0f 55) = ANDNPD_VpdWpd (66 0f 55) = PANDN_VpdWpd (66 0f df)
ORPS_VpsWps (0f 56) = ORPD_VpdWpd (66 0f 56) = POR_VpdWpd (66 0f eb)
XORPS_VpsWps (0f 57) = XORPD_VpdWpd (66 0f 57) = PXOR_VpdWpd (66 0f ef)
ANDPS_VpsWps (0f 54) = ANDPD_VpdWpd (66 0f 54) = PAND_VdqWdq (66 0f db)
ANDNPS_VpsWps (0f 55) = ANDNPD_VpdWpd (66 0f 55) = PANDN_VdqWdq (66 0f df)
ORPS_VpsWps (0f 56) = ORPD_VpdWpd (66 0f 56) = POR_VdqWdq (66 0f eb)
XORPS_VpsWps (0f 57) = XORPD_VpdWpd (66 0f 57) = PXOR_VdqWdq (66 0f ef)
*/
@ -872,7 +874,7 @@ static BxOpcodeInfo_t BxOpcodeGroupSSE_0fe6[4] = {
static BxOpcodeInfo_t BxOpcodeGroupSSE_0fe7[4] = {
/* -- */ { 0, &BX_CPU_C::MOVNTQ_MqPq },
/* 66 */ { 0, &BX_CPU_C::MOVNTDQ_MdqVdq },
/* 66 */ { 0, &BX_CPU_C::MOVNTPS_MdqVps },
/* F2 */ { 0, &BX_CPU_C::BxError },
/* F3 */ { 0, &BX_CPU_C::BxError }
};

View File

@ -2047,27 +2047,6 @@ void BX_CPU_C::CVTDQ2PD_VpdWq(bxInstruction_c *i)
#endif
}
/* 66 0F E7 */
void BX_CPU_C::MOVNTDQ_MdqVdq(bxInstruction_c *i)
{
#if BX_SUPPORT_SSE >= 2
BX_CPU_THIS_PTR prepareSSE();
if (i->modC0()) {
BX_INFO(("MOVNTDQ_MqPq: must be memory reference"));
UndefinedOpcode(i);
}
BxPackedXmmRegister reg = BX_READ_XMM_REG(i->nnn());
writeVirtualDQwordAligned(i->seg(), RMAddr(i), (Bit8u *) &reg);
//BX_INFO(("MOVNTDQ_MdqVdq: SSE2 not supported in current configuration"));
#else
BX_INFO(("MOVNTDQ_MdqVdq: SSE2 not supported in current configuration"));
UndefinedOpcode(i);
#endif
}
/* 66 0F E8 */
void BX_CPU_C::PSUBSB_VdqWdq(bxInstruction_c *i)
{