Motorola DSP96002 User Manual
Page 264
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: