RTI

命令形式

[ 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
2191空挺団 | プログラム | EZ-KIT | こぼれ話 | アーキテクチャー | 命令 | レジスタ | DSP掲示板 | FAQ |