Author: hbelusca Date: Sun Oct 12 14:08:14 2014 New Revision: 64698
URL: http://svn.reactos.org/svn/reactos?rev=64698&view=rev Log: [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).
Modified: trunk/reactos/lib/fast486/fast486.c
Modified: trunk/reactos/lib/fast486/fast486.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/lib/fast486/fast486.c?rev=6... ============================================================================== --- trunk/reactos/lib/fast486/fast486.c [iso-8859-1] (original) +++ trunk/reactos/lib/fast486/fast486.c [iso-8859-1] Sun Oct 12 14:08:14 2014 @@ -54,6 +54,7 @@ /* Main execution loop */ do { +NextInst: /* Check if this is a new instruction */ if (State->PrefixFlags == 0) State->SavedInstPtr = State->InstPtr;
@@ -72,7 +73,7 @@ CurrentHandler(State, Opcode);
/* 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 */ State->PrefixFlags = 0; @@ -104,8 +105,7 @@ State->IntStatus = FAST486_INT_EXECUTE; } } - while ((CurrentHandler == Fast486OpcodePrefix) || - (Command == FAST486_CONTINUE) || + while ((Command == FAST486_CONTINUE) || (Command == FAST486_STEP_OVER && ProcedureCallCount > 0) || (Command == FAST486_STEP_OUT && ProcedureCallCount >= 0)); }