[FAST486]

Move the prefix reset below the interrupt check, because Fast486InterruptInternal
might set OPSIZE in some circumstances.


svn path=/branches/ntvdm/; revision=61158
This commit is contained in:
Aleksandar Andrejevic 2013-11-30 22:17:18 +00:00
parent aadb980c95
commit 2cbcfd75c5

View file

@ -58,7 +58,12 @@ Fast486ExecutionControl(PFAST486_STATE State, INT Command)
if (State->PrefixFlags == 0) State->SavedInstPtr = State->InstPtr;
/* Perform an instruction fetch */
if (!Fast486FetchByte(State, &Opcode)) continue;
if (!Fast486FetchByte(State, &Opcode))
{
/* Exception occurred */
State->PrefixFlags = 0;
continue;
}
// TODO: Check for CALL/RET to update ProcedureCallCount.
@ -79,9 +84,6 @@ Fast486ExecutionControl(PFAST486_STATE State, INT Command)
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
* while interrupts are enabled.
@ -113,6 +115,9 @@ Fast486ExecutionControl(PFAST486_STATE State, INT Command)
/* Set the interrupt status to execute on the next instruction */
State->IntStatus = FAST486_INT_EXECUTE;
}
/* A non-prefix opcode has been executed, reset the prefix flags */
State->PrefixFlags = 0;
}
while ((Command == FAST486_CONTINUE)
|| (Command == FAST486_STEP_OVER && ProcedureCallCount > 0)