Digital Photo Keychain User Manual

NORMAL PROCESSING STATE
7 - 8 PROCESSING STATES
MOTOROLA
The DO instruction is another instruction that begins execution during the decode cycle
of the pipeline. As a result, there are a number of restrictions concerning access conten-
tion with the program controller registers accessed by the DO instruction. The ENDDO
instruction has similar restrictions. APPENDIX A - INSTRUCTION SET DETAILS con-
tains additional information on the DO and ENDDO instruction restrictions.
Case 5:
A resource contention problem can occur when one instruction is using a register
during its decode while the instruction executing is accessing the same resource. One ex-
ample of this is as follows:
MOVEC X:$100,SSH
DO #$10,END
The problem occurs because the MOVEC instruction loads the contents of X:$100 into
the system stack high (SSH) during its execution cycle. The DO instruction that follows
pushes the stack (LA
SSH, LC
SSL) during its decode cycle. Therefore, the two
instructions try writing to the SSH simultaneously and conflict.
7.2.2 Summary of Pipeline-Related Restrictions
The following paragraphs give a summary of the instruction sequences that cause pipe-
line effects. Additional information about the individual instructions can be found in
APPENDIX A - INSTRUCTION SET DETAILS.
DO instruction restrictions:
The DO instruction must not be immediately preceded by any of the following instruc-
tions:
BCHG/BCLR/BSET LA, LC, SSH, SSL, or SP
MOVEC/MOVEM to LA, LC, SSH, SSL, or SP
MOVEC/MOVEM from SSH
The DO instruction cannot specify SSH as a source register, as in the following example:
DO SSH,xxxx
Restrictions near the end of DO loops:
Proper DO loop operation is guaranteed if no instruction starting at address LA-2, LA-1,
or LA specifies the program controller registers SR, SP, SSL, LA, LC, or (implicitly) PC
as a destination register, or specifies SSH as a source or a destination register.