A branch control apparatus in a microprocessor. A register receives a
first cache line containing a branch instruction from an instruction
cache in response to a fetch address. The fetch address hits in a BTAC
that provides a target address of the branch instruction. The BTAC also
provides an offset of the instruction following the branch instruction.
The instructions following the branch instruction are invalidated based
on the offset. Muxing logic packs only the valid instructions into a
byte-wide instruction buffer that is directly coupled to instruction
format logic. The instruction cache provides a second cache line
containing the target instructions to the register in response to the
target address. The instructions preceding the target instructions are
invalidated based on the lower bits of the target address. The muxing
logic packs only the valid target instructions into the instruction
buffer immediately adjacent to the branch instruction bytes.