1. In an out-of-order execution processor having a next instruction pointer, a method for maintaining said next instruction pointer, said method comprising the steps of: (a) reading a set of reorder buffer entries, the reorder buffer entries storing a set of branch information and speculative result data values of a set of instructions, said reorder buffer entries being arranged in a sequential program order of said instructions; (b) determining a plurality of speculative new next instruction pointers in view of the content of said set of reorder buffer entries and individual instruction sizes of said instructions, each of said speculative new next instruction pointers indicating what said next instruction pointer should be for a particular combination of the speculative result data values if the particular combination of speculative result data values are committed to a committed non-speculative state; and (c) updating said next instruction pointer using one of said determined speculative new next instruction pointers in accordance to which combination of the speculative result data values, if any, are actually being committed to the committed non-speculative state; wherein, said steps (a) through (c) are performed at each speculative execution result commitment cycle.