1. A method comprising: dispatching an instruction for execution; speculatively executing said instruction; determining whether said instruction executed correctly; routing said instruction to a replay mechanism if said instruction did not execute correctly; determining whether incorrect execution of said instruction is due to a long latency operation; routing said instruction for immediate re-execution if said incorrect execution is not due to said long latency operation; delaying routing of said instruction for re-execution if said incorrect execution is due to said long latency operation; re-executing said instruction if said instruction did not execute correctly; and retiring said instruction if said instruction executed correctly.