bc.cond
Branch Consistent Conditional
BC.cond <label>
Branch if condition is met, with stronger ordering guarantees.
Pseudocode Operation
if (ConditionHolds(cond)) {
PC ← PC + SignExtend(imm19 << 2)
ConsistencyBarrier()
}
Example
BC.cond label
Encoding
Binary Layout
01010100
31:24
imm19
23:5
1
4
cond
3:0
Operands
-
label
Label -
cond
Cond
Related
More in Base (v8.8)
Reference
View in Arm A64 ISA Reference ↗
Arm A64 ISA
Instruction Forms
| Encoding | Instruction | ISA | Bit pattern | ||
|---|---|---|---|---|---|
| 0x54000010 | BC.<cond> <label> | A64 | 01010100 | imm19 | 1 | cond |
Description
Branch Consistent conditionally to a label at a PC-relative offset, with a hint that this branch will behave very consistently and is very unlikely to change direction.
Operation
if ConditionHolds(cond) then
BranchTo(PC64 + offset, BranchType_DIR, TRUE);
else
BranchNotTaken(BranchType_DIR, TRUE);