vmx bugfix

This commit is contained in:
Stanislav Shwartsman 2009-10-10 13:45:39 +00:00
parent 3a558cbfee
commit 12e6a33436

View File

@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////
// $Id: vmexit.cc,v 1.8 2009-09-30 05:57:21 sshwarts Exp $ // $Id: vmexit.cc,v 1.9 2009-10-10 13:45:39 sshwarts Exp $
///////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////
// //
// Copyright (c) 2009 Stanislav Shwartsman // Copyright (c) 2009 Stanislav Shwartsman
@ -303,9 +303,14 @@ void BX_CPU_C::VMexit_Event(bxInstruction_c *i, unsigned type, unsigned vector,
if (vector == BX_DF_EXCEPTION) if (vector == BX_DF_EXCEPTION)
BX_CPU_THIS_PTR in_event = 0; // clear in_event indication on #DF BX_CPU_THIS_PTR in_event = 0; // clear in_event indication on #DF
// qualifcation for debug exceptions similar to debug_trap field if (vector == BX_DB_EXCEPTION) {
if (vector == BX_DB_EXCEPTION) // qualifcation for debug exceptions similar to debug_trap field
qualification = BX_CPU_THIS_PTR debug_trap & 0x0000600f; qualification = BX_CPU_THIS_PTR debug_trap & 0x0000600f;
}
// clear debug_trap field
BX_CPU_THIS_PTR debug_trap = 0;
BX_CPU_THIS_PTR inhibit_mask = 0;
Bit32u interruption_info = vector | (type << 8); Bit32u interruption_info = vector | (type << 8);
if (errcode_valid) if (errcode_valid)