Renesas Synergy™

FAQ 1004335 : アセンブル・リスト中に出てくる「.S」「.F」「.X」「.R」「.A」「.T」「.P」は何を示しているのですか?

回答

それぞれ、以下のような意味となっています。

 

.S スタック・サイズ
.F スタック・サイズ - 引き数レジスタ領域のサイズ (引き数用レジスタ領域がスタックの先頭にある場合)
.X 引き数レジスタ領域のサイズ + .R(引き数用レジスタ領域がスタックの中央にある場合)
.R 作業用レジスタ領域のサイズ + .A + .T
.A 自動変数領域のサイズ + .T
.T 呼び出す関数の 4 ワード以降の引き数領域のサイズ
.P 常に 0 (コード生成用のマクロ)


ある関数の使用するスタック・サイズを知りたい場合、.S の値を見るとわかります。
また、これにより、スタック中のそれぞれの領域のアドレスを次のように求めることが可能です。

 

レジスタ変数用レジスタ退避領域(lpを含む) -offset + .F**[sp]
作業用レジスタ -offset + .R**[sp]
自動変数領域 -offset + .A**[sp]
4 ワード以降の引き数領域 offset + .P**[sp]
引き数用レジスタ領域
(この領域がスタックの先頭にある場合)
offset + .F**[sp]
引き数レジスタ領域
(この領域がスタックの中央にある場合)
offset + .R**[sp]

offsetは正の整数で、各領域中のオフセットを示します。**は正の整数で、関数のフレーム番号を示します。

 

適用製品

V850用コンパイラパッケージ [CA850]
他にご質問がございましたら、リクエストを送信してください