ADSP-21020
REV. C –7–
COMPUTE AND MOVE OR MODIFY INSTRUCTIONS
1. compute,
|
DM(Ia, Mb) = dreg1
|
,
|
PM(Ic, Md) = dreg2
|
;
|
dreg1 = DM(Ia, Mb)
||
dreg2 = PM(Ic, Md)
|
2. IF condition compute;
3a. IF condition compute,
|
DM(Ia, Mb)
|
= ureg ;
|
PM(Ic, Md)
|
3b. IF condition compute,
|
DM(Mb, Ia)
|
= ureg ;
|
PM(Md, Ic)
|
3c. IF condition compute, ureg =
|
DM(Ia, Mb)
|
;
|
PM(Ic, Md)
|
3d. IF condition compute, ureg =
|
DM(Mb, Ia)
|
;
|
PM(Md, Ic)
|
4a. IF condition compute,
|
DM(Ia, <data6>)
|
= dreg ;
|
PM(Ic, <data6>)
|
4b. IF condition compute,
|
DM(<data6>, Ia)
|
= dreg ;
|
PM(<data6>, Ic)
|
4c. IF condition compute, dreg =
|
DM(Ia, <data6>)
|
;
|
PM(Ic, <data6>)
|
4d. IF condition compute, dreg =
|
DM(<data6>, Ia)
|
;
|
PM(<data6>, Ic)
|
5. IF condition compute, ureg1 = ureg2 ;
6a. IF condition shiftimm,
|
DM(Ia, Mb)
|
= dreg ;
|
PM(Ic, Md)
|
6b. IF condition shiftimm, dreg =
|
DM(Ia, Mb)
|
;
|
PM(Ic, Md)
|
7. IF condition compute, MODIFY
|
(Ia, Mb)
|
;
7. IF condition compute, MODIFY
|
(Ic, Md)
|
PROGRAM FLOW CONTROL INSTRUCTIONS
8. IF condition
|
JUMP
||
<addr24>
|
(
|
DB
|
) ;
|
CALL
||
(PC, <reladdr6>)
|
(
|
LA
,
|
|
CALL
||
(PC, <reladdr6>)
|
(
|
DB, LA
|
9. IF condition
|
JUMP
||
(Md, Ic)
|
(
|
DB
|
),compute ;
|
CALL
||
(PC, <reladdr6>)
|
(
|
LA
,
|
|
CALL
||
(PC, <reladdr6>)
|
(
|
DB, LA
|
11. IF condition
|
RTS
|
(
|
DB,
|
),compute ;
|
RTI
|
(
|
LA,
|
|
RTI | (
|
DB, LA
|
12. LCNTR =
|
<data16>
|
,DO
|
<addr24>
|
UNTIL LCE ;
12. LCNTR =
|
ureg
|
,DO
|
(
<PC, <reladdr24>)
(
|
UNTIL LCE ;
13. LCNTR =
|
<data16>
|
, DO
|
<addr24>
|
UNTIL termination ;
12. LCNTR =
|
ureg
|
,DO
|
(
|
(PC, <reladdr24>)
|
(DB) Delayed branch
(LA) Loop abort (pop loop PC stacks on branch)