From afcbca5bba8d741dcc6b03aa37ebfce3b45d7dae Mon Sep 17 00:00:00 2001 From: Stanislav Shwartsman Date: Sun, 11 Apr 2010 05:28:19 +0000 Subject: [PATCH] bugfix --- bochs/cpu/iret.cc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/bochs/cpu/iret.cc b/bochs/cpu/iret.cc index c05f2049f..b39270be9 100755 --- a/bochs/cpu/iret.cc +++ b/bochs/cpu/iret.cc @@ -1,5 +1,5 @@ //////////////////////////////////////////////////////////////////////// -// $Id: iret.cc,v 1.49 2010-03-14 15:51:26 sshwarts Exp $ +// $Id: iret.cc,v 1.50 2010-04-11 05:28:19 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (c) 2005-2009 Stanislav Shwartsman @@ -218,6 +218,7 @@ BX_CPU_C::iret_protected(bxInstruction_c *i) return; } else { /* INTERRUPT RETURN TO OUTER PRIVILEGE LEVEL */ + /* 16bit opsize | 32bit opsize * ============================== * SS eSP+8 | SS eSP+16 @@ -229,7 +230,7 @@ BX_CPU_C::iret_protected(bxInstruction_c *i) /* examine return SS selector and associated descriptor */ if (i->os32L()) { - raw_ss_selector = (Bit16u) read_virtual_dword_32(BX_SEG_REG_SS, temp_ESP + 16); + raw_ss_selector = read_virtual_word_32(BX_SEG_REG_SS, temp_ESP + 16); } else { raw_ss_selector = read_virtual_word_32(BX_SEG_REG_SS, temp_ESP + 8);