BTD

BTD Branch If True Using a Delay Slot (AGU)

Operation

Assembler Syntax

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

BTD

<label

 

BTD

>label

BTD

Description

BTD <label

BTD >label

Branches to label if the true bit is set. If the T bit is set, the program continues executing at location PC + displacement. If the T bit is cleared, 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 BTD instruction is executed unconditionally after the execution set containing the BTD 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

BTD lbl

Instruction

Result

cmpeq.w #$35,d1

Equal, so T bit in SR set.

btd lbl move.w #$29,d1

Branch taken, move.w executed, d1=$29.

inc d1

Increment executed in the delay slot, d1=$2A.

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

Before BTD

After

$00E0 0002

SC140 DSP Core Reference Manual

A-111

Page 425
Image 425
Freescale Semiconductor SC140 specifications Btd, BTD Branch If True Using a Delay Slot AGU Operation, BTD lbl, BTD label