1. A method for providing branch prediction, the method comprising: generating a first index from a previous instruction address and from a first branch history vector having a first length; generating a second index from the previous instruction address and from a second branch history vector having a second length that is longer than the first length; retrieving, using the first index, a first branch prediction from a first branch prediction table; retrieving, using the second index, a second branch prediction from a second branch prediction table; updating, based upon additional branch history data, the first branch history vector and the second branch history vector; generating a first hash value from a current instruction address and the updated first branch history vector; generating a second hash value from the current instruction address and the updated second branch history vector; and selecting between the first branch prediction and the second branch prediction based upon the first and second hash values.