mirror of
https://github.com/reactos/reactos.git
synced 2024-09-18 00:33:04 +00:00
[FAST486]: speed up things a bit when we're reading prefixes, by really going to the next instruction (no jump to the end of the do{}while() loop, then restart).
svn path=/trunk/; revision=64698
This commit is contained in:
parent
62a9101a31
commit
eebf53a4a1
|
@ -54,6 +54,7 @@ Fast486ExecutionControl(PFAST486_STATE State, FAST486_EXEC_CMD Command)
|
||||||
/* Main execution loop */
|
/* Main execution loop */
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
|
NextInst:
|
||||||
/* Check if this is a new instruction */
|
/* Check if this is a new instruction */
|
||||||
if (State->PrefixFlags == 0) State->SavedInstPtr = State->InstPtr;
|
if (State->PrefixFlags == 0) State->SavedInstPtr = State->InstPtr;
|
||||||
|
|
||||||
|
@ -72,7 +73,7 @@ Fast486ExecutionControl(PFAST486_STATE State, FAST486_EXEC_CMD Command)
|
||||||
CurrentHandler(State, Opcode);
|
CurrentHandler(State, Opcode);
|
||||||
|
|
||||||
/* If this is a prefix, go to the next instruction immediately */
|
/* If this is a prefix, go to the next instruction immediately */
|
||||||
if (CurrentHandler == Fast486OpcodePrefix) continue;
|
if (CurrentHandler == Fast486OpcodePrefix) goto NextInst;
|
||||||
|
|
||||||
/* A non-prefix opcode has been executed, reset the prefix flags */
|
/* A non-prefix opcode has been executed, reset the prefix flags */
|
||||||
State->PrefixFlags = 0;
|
State->PrefixFlags = 0;
|
||||||
|
@ -104,8 +105,7 @@ Fast486ExecutionControl(PFAST486_STATE State, FAST486_EXEC_CMD Command)
|
||||||
State->IntStatus = FAST486_INT_EXECUTE;
|
State->IntStatus = FAST486_INT_EXECUTE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
while ((CurrentHandler == Fast486OpcodePrefix) ||
|
while ((Command == FAST486_CONTINUE) ||
|
||||||
(Command == FAST486_CONTINUE) ||
|
|
||||||
(Command == FAST486_STEP_OVER && ProcedureCallCount > 0) ||
|
(Command == FAST486_STEP_OVER && ProcedureCallCount > 0) ||
|
||||||
(Command == FAST486_STEP_OUT && ProcedureCallCount >= 0));
|
(Command == FAST486_STEP_OUT && ProcedureCallCount >= 0));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue