A microprocessor caches in a branch target address cache (BTAC), for each
of a plurality of previously executed branch instructions: a prediction
of whether the branch instruction will be taken and is present in a cache
line of instruction bytes provided by an instruction cache in response to
a fetch address, a target address of the branch instruction, and a
location of an opcode byte of the branch instruction within the cache
line. The instruction cache provides the cache line to an instruction
buffer and the BTAC provides the prediction, the target address, and the
location in response to the fetch address. The microprocessor branches to
the target address. A byte in the cache line within the instruction
buffer indicated by the location provided by the BTAC is marked. An
instruction decoder formats the instruction bytes in the cache line. The
microprocessor erroneously branched to the target address if the
instruction decoder indicates the marked byte is in a non-opcode location
within one of the formatted instructions.