.Bcond


The assembler expands a .Bcond directive into instructions

Remark

.BT, .BF, .BC, .BNC, .BZ, .BNZ, .BH, and .BNH are collectively called .Bcond.

[Syntax]

Symbol field
Mnemonic field
Operand field
Comment field
 
.Bcond
label
[; comment]

-

In the above syntax, .BC, .BNC, .BZ, .BNZ, .BH, and .BNH can be specified as .Bcond.
A label can be specified in the form of !LABEL, $!LABEL, or !!LABEL.

 

Symbol field
Mnemonic field
Operand field
Comment field
 
.Bcond
bit-term, label
[; comment]

-

In the above syntax, .BT, and .BF can be specified as .Bcond.
A label can be specified in the form of !LABEL, $!LABEL, or !!LABEL.

 

Symbol field
Mnemonic field
Operand field
Comment field
 
.Bcond
label1, label2
[; comment]

-

In the above syntax, .BC, .BNC, .BZ, .BNZ, .BH, and .BNH can be specified as .Bcond.
For label1 and label2, the following combinations are allowed.

Label1

Label2

!LABEL1

$LABEL2

!LABEL1

!LABEL2

$!LABEL1

$LABEL2

$!LABEL1

$!LABEL2

$!LABEL1

!!LABEL2

!!LABEL1

$LABEL2

!!LABEL1

$!LABEL2

!!LABEL1

!!LABEL2

 

Symbol field
Mnemonic field
Operand field
Comment field
 
.Bcond
bit-term, label1, label2
[; comment]

-

In the above syntax, .BT, and .BF can be specified as .Bcond.
For label1 and label2, the following combinations are allowed.

Label1

Label2

!LABEL1

!LABEL2

$!LABEL1

$!LABEL2

$!LABEL1

!!LABEL2

!!LABEL1

$!LABEL2

!!LABEL1

!!LABEL2

[Function]

-

The assembler expands a .Bcond directive into instructions.

-

The .Bcond directive is provided to be output by the compiler; the user must not use this directive.

[Description]

-

.Bcond directives are generated by the compiler, and the assembler expands them as follows.
Ncond indicates a condition opposite to cond.

Before Expansion

After Expansion

.Bcond          label
        SKNcond
        BR      label
.Bcond          bit-term
        BNcond  bit-term, $temp
        BR      label
temp:
.Bcond          label1, label2
        SKNcond
        BR      label1
        BR      label2
.Bcond          bit-term, label1, label2
        Bcond   bit-term, $temp
        BR      label2
temp:
        BR      label1