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
 
Format Branch
Opcode 0x54000010
Extension Base (v8.8)

Operands

  • label
    Label
  • cond
    Cond

Related

More in Base (v8.8)

Reference

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);