diff --git a/bochs/cpu/fetchdecode_sse.h b/bochs/cpu/fetchdecode_sse.h index 580d8949f..92f46b190 100755 --- a/bochs/cpu/fetchdecode_sse.h +++ b/bochs/cpu/fetchdecode_sse.h @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: fetchdecode_sse.h,v 1.12 2010-05-23 19:17:41 sshwarts Exp $ +// $Id: fetchdecode_sse.h,v 1.13 2010-12-19 21:07:46 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (c) 2005-2010 Stanislav Shwartsman @@ -53,7 +53,7 @@ static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f10M[3] = { }; static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f11R[3] = { - /* 66 */ { 0, BX_IA_MOVUPD_WpdVpdR }, + /* 66 */ { BxArithDstRM, BX_IA_MOVUPD_VpdWpdR }, /* F3 */ { BxArithDstRM, BX_IA_MOVSS_VssWssR }, /* F2 */ { BxArithDstRM, BX_IA_MOVSD_VsdWsdR } }; diff --git a/bochs/cpu/sse_move.cc b/bochs/cpu/sse_move.cc index 6fdb87663..6262130c6 100644 --- a/bochs/cpu/sse_move.cc +++ b/bochs/cpu/sse_move.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: sse_move.cc,v 1.122 2010-12-18 11:58:16 sshwarts Exp $ +// $Id: sse_move.cc,v 1.123 2010-12-19 21:07:46 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (c) 2003-2009 Stanislav Shwartsman @@ -159,14 +159,11 @@ void BX_CPP_AttrRegparmN(1) BX_CPU_C::FXSAVE(bxInstruction_c *i) BX_DEBUG(("FXSAVE: save FPU/MMX/SSE state")); - if (bx_cpuid_support_mmx()) - { - if(BX_CPU_THIS_PTR cr0.get_TS()) - exception(BX_NM_EXCEPTION, 0); + if(BX_CPU_THIS_PTR cr0.get_EM()) + exception(BX_UD_EXCEPTION, 0); - if(BX_CPU_THIS_PTR cr0.get_EM()) - exception(BX_UD_EXCEPTION, 0); - } + if(BX_CPU_THIS_PTR cr0.get_TS()) + exception(BX_NM_EXCEPTION, 0); xmm.xmm16u(0) = BX_CPU_THIS_PTR the_i387.get_control_word(); xmm.xmm16u(1) = BX_CPU_THIS_PTR the_i387.get_status_word(); @@ -281,13 +278,11 @@ void BX_CPP_AttrRegparmN(1) BX_CPU_C::FXRSTOR(bxInstruction_c *i) BX_DEBUG(("FXRSTOR: restore FPU/MMX/SSE state")); - if (bx_cpuid_support_mmx()) { - if(BX_CPU_THIS_PTR cr0.get_TS()) - exception(BX_NM_EXCEPTION, 0); + if(BX_CPU_THIS_PTR cr0.get_EM()) + exception(BX_UD_EXCEPTION, 0); - if(BX_CPU_THIS_PTR cr0.get_EM()) - exception(BX_UD_EXCEPTION, 0); - } + if(BX_CPU_THIS_PTR cr0.get_TS()) + exception(BX_NM_EXCEPTION, 0); bx_address eaddr = BX_CPU_CALL_METHODR(i->ResolveModrm, (i));