From b9cc8b5b0dbf9a3f7d7ce17e1c45d1097021029b Mon Sep 17 00:00:00 2001 From: Stanislav Shwartsman Date: Sat, 24 Sep 2005 16:56:20 +0000 Subject: [PATCH] Do not look on mxcsr_mask field when restoring mxcsr register in FXRSTOR At least my hardware CPU doesn't --- bochs/cpu/sse_move.cc | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/bochs/cpu/sse_move.cc b/bochs/cpu/sse_move.cc index 6b7dfdcdf..6d415f9a4 100644 --- a/bochs/cpu/sse_move.cc +++ b/bochs/cpu/sse_move.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: sse_move.cc,v 1.45 2005-09-23 16:45:41 sshwarts Exp $ +// $Id: sse_move.cc,v 1.46 2005-09-24 16:56:20 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (c) 2003 Stanislav Shwartsman @@ -217,9 +217,8 @@ void BX_CPU_C::FXRSTOR(bxInstruction_c *i) { readVirtualDQwordAligned(i->seg(), RMAddr(i) + 16, (Bit8u *) &xmm); - Bit32u new_mxcsr = xmm.xmm32u(2), mxcsr_mask = xmm.xmm32u(3); - if(! mxcsr_mask) mxcsr_mask = MXCSR_MASK; - if(new_mxcsr & ~mxcsr_mask) + Bit32u new_mxcsr = xmm.xmm32u(2); + if(new_mxcsr & ~MXCSR_MASK) exception(BX_GP_EXCEPTION, 0, 0); BX_MXCSR_REGISTER = new_mxcsr;