[FAST486]

Don't overwrite the masked flags in IRET.


svn path=/trunk/; revision=67533
This commit is contained in:
Aleksandar Andrejevic 2015-05-03 13:14:53 +00:00
parent dff30c48fa
commit 1317139297

View file

@ -4739,8 +4739,16 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeIret)
State->Cpl = GET_SEGMENT_RPL(CodeSel);
/* Set the new flags */
if (Size) State->Flags.Long = NewFlags.Long & PROT_MODE_FLAGS_MASK;
else State->Flags.LowWord = NewFlags.LowWord & PROT_MODE_FLAGS_MASK;
if (Size)
{
State->Flags.Long = (State->Flags.Long & ~PROT_MODE_FLAGS_MASK)
| (NewFlags.Long & PROT_MODE_FLAGS_MASK);
}
else
{
State->Flags.LowWord = (State->Flags.LowWord & ~PROT_MODE_FLAGS_MASK)
| (NewFlags.LowWord & PROT_MODE_FLAGS_MASK);
}
State->Flags.AlwaysSet = TRUE;
/* Set additional flags */