From: Hermès Bélusca-Maïto Date: Sun, 12 Oct 2014 14:08:14 +0000 (+0000) Subject: [FAST486]: speed up things a bit when we're reading prefixes, by really going to... X-Git-Tag: backups/0.3.17@66124~58 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=eebf53a4a1453e1c7b648e572243b6d69759798e;hp=62a9101a31f711f3372687cfc0792e8896bf8c22 [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 --- diff --git a/reactos/lib/fast486/fast486.c b/reactos/lib/fast486/fast486.c index 195881dae83..51960b7b30f 100644 --- a/reactos/lib/fast486/fast486.c +++ b/reactos/lib/fast486/fast486.c @@ -54,6 +54,7 @@ Fast486ExecutionControl(PFAST486_STATE State, FAST486_EXEC_CMD Command) /* Main execution loop */ do { +NextInst: /* Check if this is a new instruction */ if (State->PrefixFlags == 0) State->SavedInstPtr = State->InstPtr; @@ -72,7 +73,7 @@ Fast486ExecutionControl(PFAST486_STATE State, FAST486_EXEC_CMD Command) 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 @@ Fast486ExecutionControl(PFAST486_STATE State, FAST486_EXEC_CMD Command) 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)); }