diff --git a/bochs/cpu/proc_ctrl.cc b/bochs/cpu/proc_ctrl.cc index 7b0902ff8..3991ded4e 100644 --- a/bochs/cpu/proc_ctrl.cc +++ b/bochs/cpu/proc_ctrl.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: proc_ctrl.cc,v 1.289 2009-02-27 20:00:02 sshwarts Exp $ +// $Id: proc_ctrl.cc,v 1.290 2009-03-10 22:28:08 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -1112,7 +1112,6 @@ void BX_CPP_AttrRegparmN(1) BX_CPU_C::LOADALL(bxInstruction_c *i) BX_PANIC(("loadall: CS invalid")); } - updateFetchModeMask(); handleCpuModeChange(); /* ES */ @@ -1221,6 +1220,8 @@ void BX_CPU_C::handleCpuModeChange(void) } } + updateFetchModeMask(); + if (mode != BX_CPU_THIS_PTR cpu_mode) { BX_DEBUG(("%s activated", cpu_mode_string(BX_CPU_THIS_PTR cpu_mode))); #if BX_DEBUGGER @@ -1820,10 +1821,10 @@ void BX_CPP_AttrRegparmN(1) BX_CPU_C::SYSENTER(bxInstruction_c *i) BX_CPU_THIS_PTR sregs[BX_SEG_REG_CS].cache.u.segment.l = long_mode(); #endif - updateFetchModeMask(); - #if BX_SUPPORT_X86_64 handleCpuModeChange(); // mode change could happen only when in long_mode() +#else + updateFetchModeMask(); #endif #if BX_CPU_LEVEL >= 4 && BX_SUPPORT_ALIGNMENT_CHECK @@ -1941,10 +1942,10 @@ void BX_CPP_AttrRegparmN(1) BX_CPU_C::SYSEXIT(bxInstruction_c *i) EIP = EDX; } - updateFetchModeMask(); - #if BX_SUPPORT_X86_64 handleCpuModeChange(); // mode change could happen only when in long_mode() +#else + updateFetchModeMask(); #endif #if BX_CPU_LEVEL >= 4 && BX_SUPPORT_ALIGNMENT_CHECK @@ -2019,7 +2020,6 @@ void BX_CPP_AttrRegparmN(1) BX_CPU_C::SYSCALL(bxInstruction_c *i) BX_CPU_THIS_PTR sregs[BX_SEG_REG_CS].cache.u.segment.l = 1; /* 64-bit code */ BX_CPU_THIS_PTR sregs[BX_SEG_REG_CS].cache.u.segment.avl = 0; /* available for use by system */ - updateFetchModeMask(); handleCpuModeChange(); // mode change could only happen when in long_mode() #if BX_CPU_LEVEL >= 4 && BX_SUPPORT_ALIGNMENT_CHECK @@ -2170,7 +2170,6 @@ void BX_CPP_AttrRegparmN(1) BX_CPU_C::SYSRET(bxInstruction_c *i) temp_RIP = ECX; } - updateFetchModeMask(); handleCpuModeChange(); // mode change could only happen when in long64 mode #if BX_CPU_LEVEL >= 4 && BX_SUPPORT_ALIGNMENT_CHECK diff --git a/bochs/cpu/smm.cc b/bochs/cpu/smm.cc index 0314befd3..26ee82d35 100755 --- a/bochs/cpu/smm.cc +++ b/bochs/cpu/smm.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: smm.cc,v 1.57 2009-02-17 19:20:47 sshwarts Exp $ +// $Id: smm.cc,v 1.58 2009-03-10 22:28:08 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (c) 2006 Stanislav Shwartsman @@ -172,7 +172,6 @@ void BX_CPU_C::enter_system_management_mode(void) BX_CPU_THIS_PTR sregs[BX_SEG_REG_CS].cache.u.segment.l = 0; /* 16bit default size */ #endif - updateFetchModeMask(); handleCpuModeChange(); #if BX_CPU_LEVEL >= 4 && BX_SUPPORT_ALIGNMENT_CHECK diff --git a/bochs/cpu/vm8086.cc b/bochs/cpu/vm8086.cc index 53a627dda..f549bcc28 100644 --- a/bochs/cpu/vm8086.cc +++ b/bochs/cpu/vm8086.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: vm8086.cc,v 1.52 2009-01-16 18:18:59 sshwarts Exp $ +// $Id: vm8086.cc,v 1.53 2009-03-10 22:28:08 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -222,7 +222,6 @@ void BX_CPU_C::init_v8086_mode(void) BX_CPU_THIS_PTR sregs[BX_SEG_REG_CS].cache.u.segment.avl = 0; BX_CPU_THIS_PTR sregs[BX_SEG_REG_CS].selector.rpl = 3; - updateFetchModeMask(); handleCpuModeChange(); #if BX_CPU_LEVEL >= 4 && BX_SUPPORT_ALIGNMENT_CHECK diff --git a/bochs/cpu/vmx.cc b/bochs/cpu/vmx.cc index 3b98707a9..e689e8114 100755 --- a/bochs/cpu/vmx.cc +++ b/bochs/cpu/vmx.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: vmx.cc,v 1.9 2009-02-20 08:12:51 sshwarts Exp $ +// $Id: vmx.cc,v 1.10 2009-03-10 22:28:08 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (c) 2009 Stanislav Shwartsman @@ -1213,7 +1213,6 @@ Bit32u BX_CPU_C::VMenterLoadCheckGuestState(Bit64u *qualification) invalidate_prefetch_q(); handleAlignmentCheck(); - updateFetchModeMask(); handleCpuModeChange(); return VMXERR_NO_ERROR; @@ -1564,7 +1563,6 @@ void BX_CPU_C::VMexitLoadHostState(void) invalidate_prefetch_q(); handleAlignmentCheck(); - updateFetchModeMask(); handleCpuModeChange(); }