Instruction Set Restrictions
SC140 DSP Core Reference Manual
6-27
— In case of a short loop with one execution set, the LPMARKA of the short loop should not come
after the LPMARKB of the long loop. However, it can come together with the LPMARKB of
the long loop.
Restrictions L.D.2 + L.D.3
— The minimum number of execution sets between an instruction that
updates LC and the set with the LPMARKn prefix bit are as follows:
— DOEN/SH Dn: two execution sets (initialization from a data register)
— MOVE to LC or POP LC: two execution sets
— DOEN/SH Rn or #x: one execution set (initialization from an address register or by an
immediate value)
Restriction L.D.6
— For a long loop, a minimum of one execution set must separate an instruction
that updates the SA register (DOSETUP, MOVE to SA, or POP SA) and the set with the LPMARK.
Restrictions L.D.8 + L.D.9
— For long and short loops, a minimum of one execution set must
separate an instruction that reads the LC register (MOVE from LC or PUSH LC) and the set with the
LPMARK.
Restriction L.C.1
— No JUMP/BRANCH instruction is allowed to the two execution sets after the
LPMARKB of a long loop. This restriction does not include a SKIPLS/CONT/BREAK of a nested
loop to the last execution sets of an enveloping loop (two execution sets after LPMARKB).
Restriction L.C.2
— No change-of-flow instructions are allowed in the LA-2 execution set (the set
with the LPMARKB). Similarly, these instructions are not allowed in the two execution sets after
LPMARKB (LA-1 and LA), due to Restriction L.L.1.
Restriction L.C.3 + L.C.5
— No conditional JUMP or BRANCH is allowed in the execution set
before an LPMARK. This does not include CONT, BREAK, or JMP/BRANCH after an IFc.
Restriction L.C.9
— No SKIPLS/CONT/BREAK is allowed to an execution set that contains an
LPMARKB if the execution set that follows contains an LPMARKA. For example, the following
sequence is restricted:
SKIPLS _target
loopstart2
...
loopend2
...
_target exec 2 <-- LPMARKB (loop0)
exec 1 <-- LPMARKA (loop1)
loopend1
exec 0
loopend0
Restriction L.C.10
— A JSR, JSRD, BSR, or BSRD instruction to a destination with an LPMARK
is not allowed.
Restriction L.G.3 + L.G.4
— A minimum of one execution set must separate a move or push
instruction that uses SR as a source and the execution set which contains an LPMARK.
6.4.9.7 Loop Sequence Restrictions
The instructions between the end and start of a repeated loop form a sequence. In a short loop, the sequence
may be between an instruction and itself. The following restrictions summarize additional combinations
that must not appear in short or long loops. No special mention is made of situations arising in loops that
were already covered. However, some sequence restrictions that appear earlier in this chapter may apply.
The restriction name in parenthesis is that of the original sequence restriction.