ADSP-21020
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) ; | |
|
|
| (Ic, Md) |
PROGRAM FLOW CONTROL INSTRUCTIONS
8.IF condition
9.IF condition
JUMP | <addr24> | |
CALL | (PC, <reladdr6>) | |
JUMP | (Md, Ic) | |
CALL | (PC, <reladdr6>) |
(DB | ) ; |
LA | |
DB, LA | |
(DB | ) , compute ; |
LA |
DB, LA
11.IF condition
RTS | (DB | ) , compute ; | |
RTI | (LA | ||
|
| DB, LA |
12. | LCNTR = | <data16> | , DO | <addr24> | |
|
| ureg | (<PC, <reladdr24>) | ||
13. |
|
| DO | <addr24> | |
|
|
|
| (PC, <reladdr24>) |
(DB) Delayed branch
(LA) Loop abort (pop loop PC stacks on branch)
UNTIL LCE ;
UNTIL termination ;
REV. C |