When a branch misprediction in a pipelined processor is discovered, if the
mispredicted branch instruction is not the last uncommitted instruction
in the pipelines, older uncommitted instructions are checked for
dependency on a long latency operation. If one is discovered, all
uncommitted instructions are flushed from the pipelines without waiting
for the dependency to be resolved. The branch prediction is corrected,
and the branch instruction and all flushed instructions older than the
branch instruction are re-fetched and executed.