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