Branch Target Annotation

The branch target annotation .br.target precedes an indirect branch and explicitly provides the assembler with the branch target address for the branch instruction. This annotation applies only to the branch instruction that immediately follows the annotation. The .br.target annotation has the following syntax:

.br.target			target1[=prob1] [,target2[=prob2]...]

where:

target

Specifies the targets of the next indirect branch instruction. May be one of the following:

a label

If the label is not defined in the object file symbol table, or the next instruction is not an indirect branch, the assembler ignores this annotation.

@fallthrough

The branch is not taken.

@external

The branch jumps outside the current function.

prob

A real number that indicates the probability that the associated branch target is taken.

The following examples illustrates a branch target annotation.

Using the Branch Target Annotation 1

.br.target a=0.6, b, @fallthrough=0.2, @external=0.1

Using the Branch Target Annotation 2

br.target Target002
(p4)br.cond.sptk.many.b1

where

Target002 Is the name of a label in the procedure.