CBLO (register)
Compare unsigned lower than register and branch
This instruction compares the unsigned values in two registers, and conditionally
branches to a label at a PC-relative offset if the second value is lower than the first.
It provides a hint that this is not a subroutine call or return.
This instruction does not affect the condition flags.
Encoding: Branch
Variants: FEAT_CMPBR (ARMv9.6)
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| 1 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | | | | | | 0 | 0 | | | | | | | | | | | | | | |
| sf | | cc | Rm | | imm9 | Rt |
|---|
32-bit higher (sf == 0)
CBLO <Wm>, <Wt>, <label>
Equivalent to: CBHI <Wt>, <Wm>, <label>
64-bit higher (sf == 1)
CBLO <Xm>, <Xt>, <label>
Equivalent to: CBHI <Xt>, <Xm>, <label>
Explanations
<Wm>:
Is the 32-bit name of the second general-purpose source register, encoded in the "Rm" field.<Wt>:
Is the 32-bit name of the general-purpose register to be tested, encoded in the "Rt" field.<label>:
Is the program label to be conditionally branched to. Its offset from the address of this instruction, in the range -1024 to 1020, is encoded as "imm9" times 4.<Xm>:
Is the 64-bit name of the second general-purpose source register, encoded in the "Rm" field.<Xt>:
Is the 64-bit name of the general-purpose register to be tested, encoded in the "Rt" field.