Active lcn write at the end of long loops -54, Instructions in short loops -54 – Freescale Semiconductor StarCore SC140 User Manual
Page 304

7-54
SC140 DSP Core Reference Manual
LPMARK Rules
LPMARK Rule L.L.2
A DOENn or MOVE-like instruction that writes the active LCn register is not allowed at LPB, LPB+1, or
LPB+2 of a long loop.
Example 7-93. Active LCn Write at the End of Long Loops
doen1 #3
move.l #$12345678,r1
inc d0
{lpmarkb set}
doen1 #5
;not allowed
move.w d3,(r1)+
LPMARK Rule L.L.3
The following instructions are not allowed at LPA, LPB, or LPB+1 of a short loop:
•
COF instructions
•
STOP and WAIT
•
DI
•
DEBUG
•
DOENn/DOENSHn
•
MOVE-like instructions that read any LCn register
•
MOVE-like instructions that write any LCn register
•
MOVE-like instructions that read the SR register
•
MOVE-like instructions that write the SR register
This rule does not apply to other instructions that affect status bits in SR.
Example 7-94. Instructions in Short Loops
move.w #count2,r6
doensh0 r6
move.w #3,d3
inc d3
{lpmarkb set}
wait
;not allowed
doensh0 #$10
nop
jmp end
{lpmarka set}
;not allowed
doensh1 #count2
move.w #num,d2
doen1 #5
{lpmarka set}
;not allowed
LPMARK Rule L.L.5
A MOVE-like instruction that writes the SR register is not allowed at LPB-2, LPB-1, LPB, LPB+1, or
LPB+2 of a long loop.