6-26
SC140 DSP Core Reference Manual
Instruction Set Overview
Restriction L.C.3
— A conditional jump or branch (Jc/Bc) is not allowed in the execution set before
the start address of a short loop (SA-1). This does not include CONT, BREAK, or JMP/BRANCH
with IFc.
Restriction L.C.5
— Conditional jump or branch (Jc/Bc) is not allowed in the last four execution
sets of a long loop (LA-3 to LA). This does not include CONT, BREAK, or JMP/BRANCH after an
IFc.
Restriction L.C.7
— The destination address of SKIPLS/CONT/BREAK should not be inside the
same loop.
Restriction L.C.9
— No SKIPLS/CONT/BREAK is allowed to an execution set that is followed by
two consecutive execution sets that are both the last addresses of loops. The following sequence is
restricted:
SKIPLS _target
loopstart2
...
loopend2
...
_target exec 2
exec 1
loopend1 ; assembly directive marking exec 1 as the last address of loop 1
exec 0
loopend0 ; assembly directive marking exec 0 as the last address of loop 0
Restriction L.C.10
— A JSR, JSRD, BSR, or BSRD instruction to a destination that is the LA-2 of
a long loop or the SA of a short loop is not allowed.
6.4.9.5 General Looping Restrictions
The following are general looping restrictions:
Restriction L.G.1
— During an active loop, it is not recommended to clear a loop flag or the SLF
bit in the SR by a write to the SR. Only loop instructions should update the SR during active loops.
Restriction L.G.3
— For a long loop, there should be at least three execution sets between a move
or push instruction (that uses SR as a source) and the LA.
Restriction L.G.4
— Before a short loop, there should be at least one execution set between a move
or push instruction (that uses SR as a source) and the SA.
6.4.9.6 Looping Restrictions in LPMARK Notation
The restrictions below are the same as some of the restrictions previously described, but they are presented
in terms of LPMARK notation.
Restriction L.L.1
— In long loops, all the restrictions on delay slots are relevant to the two
execution sets after LPMARKB. See Restriction D.1 on page 6-25.
Restriction L.L.2
— A DOEN/DOENSH or any move-like instruction to LC (MOVE to LC or POP
LC) is not allowed in an execution set that has LPMARKB in a long loop (or in the two
execution sets following LPMARKB).
Restriction L.L.4
— If a short loop is nested inside a long loop, the following two cases are
restricted:
— In case of a short loop with two execution sets, the LPMARKB of the short loop should not come
with or after the LPMARKB of the long loop.