さらに弄り回す

もう一息

相当いじりましたが、テスト用のプログラムを書き溜めていたおかげで楽にチェックできました。あと気になっているのは割込み/例外時のコンテキスト保存方法です。現在、一番外側の割込み/例外に関してはすべてのレジスタをタスク・スタックに押し込みます。

  • Rx : 32B
  • Px : 24B
  • FP : 8B
  • Ix,Lx,Bx,Mx : 64B
  • Lxx : 24B
  • RETS : 4B
  • ASTAT : 4B

これに作業用の8Bのほか、call_texrtn()とdispatch()用のスタック領域が必要です。つまり、call_texrtn/dispatch()を除いても170B程度が必要であり、それがすべてタスク・スタックに求められるということです。
そこで、タスク・スタックにはすぐに必要なRx/Px/ASTATのみを保存し、その他のレジスタはイベント・スタックに保存することで100B程負担を少なく出来るのではないかと見ています。
そのほか、実はFPは退避しなくていいとか。

文書

TOPPERS/JSP Release 1.4.2のアップデートをインデックス付けしたDOCファイルに適用しました。そのうちsourceforgeにアップロードします。