Fixed NULL SS selector loading for ret_far
This commit is contained in:
parent
7f0fc6df78
commit
a096472646
@ -1,5 +1,5 @@
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
// $Id: ret_far.cc,v 1.3 2005-08-02 18:44:20 sshwarts Exp $
|
||||
// $Id: ret_far.cc,v 1.4 2005-08-03 21:01:02 sshwarts Exp $
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Copyright (C) 2001 MandrakeSoft S.A.
|
||||
@ -233,7 +233,7 @@ BX_CPU_C::return_protected(bxInstruction_c *i, Bit16u pop_bytes)
|
||||
|
||||
if ((raw_ss_selector & 0xfffc) == 0) {
|
||||
if (IsLongMode()) {
|
||||
if (! IS_LONG64_SEGMENT(cs_descriptor) || (ss_selector.rpl == 3)) {
|
||||
if (! IS_LONG64_SEGMENT(cs_descriptor) || (cs_selector.rpl == 3)) {
|
||||
BX_ERROR(("return_protected: SS selector null"));
|
||||
exception(BX_GP_EXCEPTION, 0, 0);
|
||||
}
|
||||
@ -274,7 +274,7 @@ BX_CPU_C::return_protected(bxInstruction_c *i, Bit16u pop_bytes)
|
||||
|
||||
/* segment must be present else #SS(selector) */
|
||||
if (! IS_PRESENT(ss_descriptor)) {
|
||||
BX_ERROR(("ss.present == 0"));
|
||||
BX_ERROR(("return_protected: ss.present == 0"));
|
||||
exception(BX_SS_EXCEPTION, raw_ss_selector & 0xfffc, 0);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user