A branch control apparatus in a microprocessor. The branch control
apparatus includes an instruction buffer having a plurality of stages
that buffer cache lines of instruction bytes received from an instruction
cache. A multiplexer selects one of the bottom three stages in the
instruction buffer to provide to instruction format logic. The
multiplexer selects a stage based on a branch indicator, an instruction
wrap indicator, and a carry indicator. The branch indicator indicates
whether the processor previously branched to a target address provided by
a branch target address cache. The branch indicator and target address
are previously stored in association with the stage containing the branch
instruction for which the target address is cached. The wrap indicator
indicates whether the currently formatted instruction wraps across two
cache lines. The carry indicator indicates whether the current
instruction being formatted occupies the last byte of the currently
formatted instruction buffer stage.