[FAST486]

- When pushing 16-bit value, check only low word of ESP (i.e. SP).
- Don't forget to clear high word of EIP, for the Jump instruction of group 4 (0xFF).

svn path=/branches/ntvdm/; revision=62258
This commit is contained in:
Hermès Bélusca-Maïto 2014-02-19 20:24:53 +00:00
parent 87ac13a950
commit a4f4c415ac
2 changed files with 4 additions and 1 deletions

View file

@ -296,7 +296,7 @@ Fast486StackPush(PFAST486_STATE State,
USHORT ShortValue = LOWORD(Value);
/* Check if SP is 1 */
if (State->GeneralRegs[FAST486_REG_ESP].Long == 1)
if (State->GeneralRegs[FAST486_REG_ESP].LowWord == 1)
{
Fast486Exception(State, FAST486_EXCEPTION_SS);
return FALSE;

View file

@ -1632,6 +1632,9 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroupFF)
{
/* Set the IP to the address */
State->InstPtr.LowWord = Value;
/* Clear the top half of EIP */
State->InstPtr.Long &= 0xFFFF;
}
else if (ModRegRm.Register == 5)
{