mirror of
https://github.com/reactos/reactos.git
synced 2025-04-20 20:36:35 +00:00
[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:
parent
aadb980c95
commit
2cbcfd75c5
1 changed files with 9 additions and 4 deletions
|
@ -58,7 +58,12 @@ Fast486ExecutionControl(PFAST486_STATE State, INT Command)
|
||||||
if (State->PrefixFlags == 0) State->SavedInstPtr = State->InstPtr;
|
if (State->PrefixFlags == 0) State->SavedInstPtr = State->InstPtr;
|
||||||
|
|
||||||
/* Perform an instruction fetch */
|
/* 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.
|
// TODO: Check for CALL/RET to update ProcedureCallCount.
|
||||||
|
|
||||||
|
@ -79,9 +84,6 @@ 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.
|
||||||
|
@ -113,6 +115,9 @@ 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)
|
||||||
|
|
Loading…
Reference in a new issue