6 //2 Program Flow Control
10 //JUMP ( Preg ) ; /* indirect to an absolute (not PC-relative)address (a) */
22 //JUMP ( PC + Preg ) ; /* PC-relative, indexed (a) */
33 //JUMP pcrelm2 ; /* PC-relative, immediate (a) or (b) */
42 //JUMP.S pcrel13m2 ; /* PC-relative, immediate, short (a) */
49 //JUMP.L pcrel25m2 ; /* PC-relative, immediate, long (b) */
58 //JUMP user_label ; /* user-defined absolute address label, */
65 //IF CC JUMP pcrel11m2 ; /* branch if CC=1, branch predicted as not taken (a) */
66 IF CC JUMP 0xFFFFFE08;
70 //IF CC JUMP pcrel11m2 (bp) ; /* branch if CC=1, branch predicted as taken (a) */
71 IF CC JUMP 0xFFFFFE08(bp);
74 //IF !CC JUMP pcrel11m2 ; /* branch if CC=0, branch predicted as not taken (a) */
75 IF !CC JUMP 0xFFFFFF22;
78 //IF !CC JUMP pcrel11m2 (bp) ; /* branch if CC=0, branch predicted as taken (a) */
79 IF !CC JUMP 0xFFFFFF22(bp);
80 IF !CC JUMP 0X120(bp);
82 //IF CC JUMP user_label ; /* user-defined absolute address label, resolved by the assembler/linker to the appropriate PC-relative instruction (a) */
86 //IF CC JUMP user_label (bp) ; /* user-defined absolute address label, resolved by the assembler/linker to the appropriate PC-relative instruction (a) */
87 IF CC JUMP MY_LABEL1(bp);
88 IF CC JUMP MY_LABEL2(bp);
90 //IF !CC JUMP user_label ; /* user-defined absolute address label, resolved by the assembler/linker to the appropriate PC-relative instruction (a) */
91 IF !CC JUMP MY_LABEL1;
92 IF !CC JUMP MY_LABEL2;
94 //IF !CC JUMP user_label (bp) ; /* user-defined absolute address label, resolved by the assembler/linker to the appropriate PC-relative instruction (a) */
95 IF !CC JUMP MY_LABEL1(bp);
96 IF !CC JUMP MY_LABEL2(bp);
98 //CALL ( Preg ) ; /* indirect to an absolute (not PC-relative) address (a) */
107 //CALL ( PC + Preg ) ; /* PC-relative, indexed (a) */
115 //CALL pcrel25m2 ; /* PC-relative, immediate (b) */
119 //CALL user_label ; /* user-defined absolute address label,resolved by the assembler/linker to the appropriate PC-relative instruction (a) or (b) */
123 RTS ; // Return from Subroutine (a)
124 RTI ; // Return from Interrupt (a)
125 RTX ; // Return from Exception (a)
126 RTN ; // Return from NMI (a)
127 RTE ; // Return from Emulation (a)
129 lsetup ( 4, 4 ) lc0 ;
131 lsetup ( beg_poll_bit, end_poll_bit ) lc0 ;
133 beg_poll_bit: R0=1(Z);
134 end_poll_bit: R1=2(Z);
136 lsetup ( 4, 6 ) lc1 ;
138 lsetup ( FIR_filter, bottom_of_FIR_filter ) lc1 ;
141 bottom_of_FIR_filter: R1=2(Z);
143 lsetup ( 4, 8 ) lc0 = p1 ;
145 lsetup ( 4, 8 ) lc0 = p1>>1 ;
147 loop DoItSome LC0 ; /* define loop DoItSome with Loop Counter 0 */
148 loop_begin DoItSome ; /* place before the first instruction in the loop */
151 loop_end DoItSome ; /* place after the last instruction in the loop */
153 loop DoItSomeMore LC1 ; /* define loop MyLoop with Loop Counter 1*/