MOVES.4F

BFD Branch If False Using a Delay Slot (AGU)

Operation

Assembler Syntax

If T==0, then PC + displacement → PC

BFD

<label

 

BFD

>label

BFD

Description

BFD <label

BFD >label

Branches to label if the true bit is cleared. If the T bit is cleared, the program continues executing at location PC + displacement. If the T bit is set, the PC is updated to point to the next execution set, and the program continues executing sequentially. The displacement, calculated by the assembler and linker, is a two’s complement integer that represents the relative distance from the current PC to the destination label. The assembler determines if the PC relative displacement is a short branch (<label [–28≤ displacement < 28, W]) or a long branch (>label [–220≤ displacement < –28, W and 28 ≤ displacement < 220, W]). The execution set in the delay slot immediately following the BFD instruction is executed unconditionally after the execution set containing the BFD instruction.

Status and Conditions that Affect Instruction

Register Address

Bit Name

Description

SR[1]

T

True bit

Status and Conditions Changed by Instruction

None.

Example

BFD lbl

Instruction

Result

cmpeq.w

#$35,d1

Not equal, so T bit in SR cleared.

bfd lbl

move.w #$29,d1

Branch taken, move.w executed.

inc

d1

 

Increment executed in the delay slot.

move.w #$47,d2

Skipped over.

- - - -

 

Skipped over.

- - - -

 

Skipped over.

- - - -

 

Skipped over.

lbl move.w #$1A,d4

Execution continues here at lbl.

Register/Memory Address

SR

BeforeAfter

$00E0 0000

SC140 DSP Core Reference Manual

A-67

Page 381
Image 381
Freescale Semiconductor SC140 specifications Bfd, BFD Branch If False Using a Delay Slot AGU Operation, BFD lbl, BFD label