Motorola DSP96002 User Manual

Page 264

Advertising
background image

A - 76

DSP96002 USER’S MANUAL

MOTOROLA

Other restrictions:

BSR

to (LA), if Loop Flag is set

(F)BScc

to (LA), if Loop Flag is set

JSR

to (LA), if Loop Flag is set

(F)JScc

to (LA), if Loop Flag is set

JSCLR

to (LA), if Loop Flag is set

JSSET

to (LA), if Loop Flag is set

BSCLR

to (LA), if Loop Flag is set

BSSET

to (LA), if Loop Flag is set

A DO instruction cannot be repeated using the REP instruction.

Note: Due to pipelining, if an address register (R0-R7, N0-N7, or M0-M7) is changed using a move-type

instruction (LUA, Tcc, MOVE, MOVEC, MOVEM, MOVEP, or parallel move), the new contents of the des-

tination address register will not be available for use during the following instruction (i.e., there is a single

instruction cycle pipeline delay). This restriction also applies to the situation in which the last instruction in

a DO loop changes an address register and the first instruction at the top of the DO loop uses that same

address register. The top instruction becomes the following instruction because of the loop construct.

Similarly, since the DO instruction accesses the program controller registers, the DO instruction must not

be immediately proceeded by any of the following instructions:

Immediately before DO:

BCHG/BCLR/BSET

LA, LC, SSH, SSL or SP

LEA

to LA, LC, SSH, SSL or SP

LRA

to LA, LC, SSH, SSL or SP

MOVEC/I/M/S

to LA, LC, SSH, SSL or SP

MOVEC/M/S

from SSH

During hardware loop operation, each instruction is fetched each time through the program loop. There-

fore, instructions being executed in a hardware loop are interruptible and may be nested. The value of the

PC pushed onto the system stack is the location of the first instruction after the DO instruction. This value

is read from the top of the system stack to return to the start of the program loop. When DO instructions

are nested, the end of loop addresses must also be nested and are not allowed to be equal. An example

is shown:

Advertising