wtop and wexit Branch Types

These branch types behave identically, except in the determination of whether to branch or not. For br.wtop, the branch is taken if either the qualifying predicate is one or EC is greater than one. For br.wexit, the opposite is true. It is not taken if either the qualifying predicate is one or EC is greater than one, and is taken otherwise.

These branch types also use the qualifying predicate and EC to control register rotation and predicate initialization. During the prolog phase, the qualifying predicate is either zero or one, depending upon the scheme used to program the loop. During the kernel phase, the qualifying predicate is one. During the epilog phase, the qualifying predicate is zero, and EC counts down. When br.wtop or br.wexit is executed with the qualifying predicate equal to zero and EC equal to one, a final decrement of EC and a final register rotation are done. If the qualifying predicate and EC are zero, register rotation stops. These other effects are the same for the two branch types, and are described in Operation of WTOP and WEXIT Branch Types.