Modified my fix to JMP_Jq to clear all the upper bits,
63..16 when a 16-bit operand size JMP is executed. Previous fix cleared only 63..32. I since realized, this is the case which does parallel the 32-bit semantics.
This commit is contained in:
parent
6d74a334d6
commit
109111202c
@ -1,5 +1,5 @@
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
// $Id: ctrl_xfer64.cc,v 1.12 2002-09-26 21:32:26 kevinlawton Exp $
|
||||
// $Id: ctrl_xfer64.cc,v 1.13 2002-09-26 22:34:06 kevinlawton Exp $
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Copyright (C) 2001 MandrakeSoft S.A.
|
||||
@ -293,6 +293,7 @@ BX_CPU_C::JMP_Jq(bxInstruction_c *i)
|
||||
// For 16-bit opSize, upper bits of RIP are cleared, as in
|
||||
// 32-bit counterpart JMP_Jd.
|
||||
BX_CPU_THIS_PTR dword.rip_upper = 0;
|
||||
BX_CPU_THIS_PTR dword.eip &= 0x0000ffff;
|
||||
}
|
||||
BX_INSTR_UCNEAR_BRANCH(BX_INSTR_IS_JMP, new_RIP);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user