Fixed FXSAVE/FXRSTOR exceptions order
This commit is contained in:
parent
4a85a8680e
commit
f2355a8249
@ -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 }
|
||||
};
|
||||
|
@ -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));
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user