適用範囲:Arm v8-A Architecture
回答:
A32命令セットとは異なり、条件付き実行はA64では限られた命令でのみ使用できます。
条件付き分岐
A64のほとんどの制御フローは、条件付き分岐命令で実装されることが期待されています。いくつかのバリエーションが用意されています。
B.cond label
ラベルから +/- 1MBの範囲に対するPC相対条件分岐です。
condは通常の条件コードのいずれでもかまいません。 PSTATE条件フラグは、これらの命令への入力としても使用されます。
例:
B.EQ label
イコールの条件が真の場合、つまり条件フラグ z==1 の場合、ラベルに分岐します。
レジスタ入力を受け取る条件付き分岐命令もあります。
例:
CBZ Wn, label
Compare and branch if zero(CBZ) はWnの値が0であればラベルに対してPC相対分岐を行います。Xレジスタを取り、ゼロでない場合に分岐するバリアント(CBNZ)もあります。
さらに、Test bit and Branch if Zero(TBZ)および、Test bit and Branch if Nonzero(TBNZ) の命令は汎用レジスタのビットの値をテストし、条件付きでラベルに分岐します。