Improved Branch prediction utilizes both a Branch Target Buffer (BTB) and
a Multiple Target Table (MTT) for providing the capability to predict
multiple targets for a single branch. A MTT when used in conjunction with
a BTB allows for branches which have changing targets to be able to
selectively choose the target of choice based on the execution path that
was taken that lead to the given branch. The method predicts traget
addresses, and between the static and dynamic target address, and upon
finding a hit, the target is sent to the instruction cache such that a
fetch can begin for the current target address and the target address is
sent back to the Branch Target Buffer (BTB) to begin the search for the
next branch given the current target predicted address. Upon resolving a
branch the dynamic target is placed in MTT for future use.