[FAST486]

Revert r61158, and fix the prefix issue correctly, but resetting the flags
again after the call to Fast486InterruptInternal.


svn path=/branches/ntvdm/; revision=61160
This commit is contained in:
Aleksandar Andrejevic 2013-11-30 23:45:59 +00:00
parent 7393337fcf
commit ba237b0251

View file

@ -84,6 +84,9 @@ Fast486ExecutionControl(PFAST486_STATE State, INT Command)
continue; continue;
} }
/* A non-prefix opcode has been executed, reset the prefix flags */
State->PrefixFlags = 0;
/* /*
* Check if there is an interrupt to execute, or a hardware interrupt signal * Check if there is an interrupt to execute, or a hardware interrupt signal
* while interrupts are enabled. * while interrupts are enabled.
@ -100,6 +103,9 @@ Fast486ExecutionControl(PFAST486_STATE State, INT Command)
IdtEntry.Selector, IdtEntry.Selector,
MAKELONG(IdtEntry.Offset, IdtEntry.OffsetHigh), MAKELONG(IdtEntry.Offset, IdtEntry.OffsetHigh),
IdtEntry.Type); IdtEntry.Type);
/* Restore the prefix flags, which would be set to OPSIZE for 32-bit real mode */
State->PrefixFlags = 0;
} }
/* Clear the interrupt status */ /* Clear the interrupt status */
@ -115,9 +121,6 @@ Fast486ExecutionControl(PFAST486_STATE State, INT Command)
/* Set the interrupt status to execute on the next instruction */ /* Set the interrupt status to execute on the next instruction */
State->IntStatus = FAST486_INT_EXECUTE; State->IntStatus = FAST486_INT_EXECUTE;
} }
/* A non-prefix opcode has been executed, reset the prefix flags */
State->PrefixFlags = 0;
} }
while ((Command == FAST486_CONTINUE) while ((Command == FAST486_CONTINUE)
|| (Command == FAST486_STEP_OVER && ProcedureCallCount > 0) || (Command == FAST486_STEP_OVER && ProcedureCallCount > 0)