GR-SAKURA
GR-KURUMI
GR-COTTON
GR-CITRUS
GR-PEACH
GR-KAEDE
GR-ADZUKI
GR-LYCHEE
GR-ROSE
GR-MANGO(*)
SNShield
Web Compiler
IDE for GR
TOPPERS関連
女子美コラボ
その他
※プロデューサミーティング中
作り方使い方資料
イベント関連
作品記事
体験記事
ライブラリ
ツール
その他・過去ファイル
くるみちゃんをe2studiotとGNUで開発していますが、ちょっと教えてください。
汎用レジスタのレジスタバンクの使用についての規則って判りますでしょうか?
知りたいのはCの関数内部で主に使用するレジスタバンクとか、関数コール時のレジスタバンクの退避とか、割り込み内部で使用するレジスタバンク等の規則性です。
っ RL78 Application Binary Interface for GCC
ありがとうございます。
バンク2のみ保存が必要で、バンク3は割り込みに予約されていると言う訳ですね。
バンク3は割り込みに予約されていると言う訳ですね。
ABI にはそう書かれていますが、例えばバンク0~2の何れかの代わりにバンク3を使えれば割り込みハンドラでのレジスタの退避/復帰 がバンク3 で代用したバンクについては不要になるので割り込みレスポンスが向上する、みたいなことを想定していると思うのですが、ABI 上、
ということになっており、実際どのバンクも代替できないため絵に描いたおモチなのではないかと思っています。
なるほど、デバッカー上で汎用レジスタをみてると、かつてバンク3は使われた形跡が見当たらないのは、上記の感じですかね。
それ用にコンパイルオプションを指定しないとバンク3は一切使われることがないのでそういう結果になると思います。