[ IF <cond> ] RTI [ (DB) ] [ (SS) ];
IF NE RTI; RTI;
割り込みハンドラから割り込まれたプログラムに戻ります。
動作としてはPCスタックから値をポップしてPCに代入します。PCスタックは33エントリーの内蔵スタックで、コール命令、割り込み、DO命令が共用します。つまり、これら三者の入れ子の合計は33レベルまで許されます。スタックの入れ子についての詳細はADSP-2191 HRM 3-34ページ、"Stack and Sequencing"を参照してください。
また、同時にステータス・スタックから値をポップしてASTAT、MSTATに代入します。ステータス・スタックは16エントリーの内蔵スタックで割り込みが発生するたびにプッシュされます。つまり割り込みの入れ子は16レベルまで許されます。スタックの入れ子についての詳細はADSP-2191 HRM 3-34ページ、"Stack and Sequencing"を参照してください。
(DB)オプションをつけると遅延分岐を行います。この場合、RTI命令の次の2命令を無条件に実行するため、ストールが2サイクルに緩和されます。遅延分岐を行う時に注意が必要なのは即値DMストア命令と即値PMストア命令です。この二つは2ワード命令であるため、2命令分の場所を占有してしまいます。この命令を遅延スロットで実行する場合には遅延スロットの1スロット目に配置してください。なお、遅延スロットには以下の命令を置くことはできません。
RTI実行時のオーバーヘッドや制限についての詳細はISRの8-48ページと、HRMの3-13ページ"Branches and Sequencing"を参照してください。
(SS)はエミュレーション専用のオプションです。アプリケーションで使うことはありませんので無視してください。
<cond> ::= EQ, NE, GT, LE, LT, GE, AV, NOT AV, AC, NOT AC, SWCOND, NOT SWCOND, MV, NOT MV, NOT CE, TRUE