The system is a method and an apparatus for resteering failing speculation
check instructions in the pipeline of a processor. A branch offset
immediate value and an instruction pointer correspond to each failing
instruction. These values are used to determine the correct target
recovery address. A relative adder adds the immediate value and the
instruction pointer value to arrive at the target recovery address. This
is done by flushing the pipeline upon the occurrence of a failing
speculation check instruction. The pipeline flush is extended to allow the
instruction stream to be resteered. The immediate value and the
instruction pointer are then routed through the existing data paths of the
pipeline, into the relative adder, which calculates the correct address. A
sequencer tracks the progression of these values through the pipeline and
causes a branch at the desired time.