Renesas Synergy™

FAQ 1008229 : V2.50にバージョンアップするとcallt命令が出力されるのですがなぜですか?

回答

V850Eコアのデバイス・ファイルを指定していた場合に、 関数のプロローグ/エピローグのランタイム機能が 有効になっていると、callt命令が出力されます。

V2.50にバージョンアップした際に、 最適化レベルを変更しています。
これにともない、関数のプロローグ/エピローグのランタイム機能の ON/OFFも変更になりました。

V2.41 デフォルト(関数のプロローグ/エピローグのランタイム機能OFF)
-Os(関数のプロローグ/エピローグのランタイム機能ON)
-Ot(関数のプロローグ/エピローグのランタイム機能OFF)
V2.50以上 -Od(関数のプロローグ/エピローグのランタイム機能ON)
-Ob(デフォルト)(関数のプロローグ/エピローグのランタイム機能ON)
-Og(関数のプロローグ/エピローグのランタイム機能ON)
-O(関数のプロローグ/エピローグのランタイム機能ON)
-Os(関数のプロローグ/エピローグのランタイム機能ON)
-Ot(関数のプロローグ/エピローグのランタイム機能OFF)

そのため、最適化レベルをデフォルトで使用していた場合は、 CA850をバージョンアップしたことによりcallt命令が 出力されるようになります。

関数のプロローグ/エピローグのランタイム機能はオプションで 制御することが可能になります。
-Xpro_epi_runtime=on (有効)
-Xpro_epi_runtime=off (無効)

RX850を使用している場合には、callt命令は使用できませんので、 -Xpro_epi_runtime=off を指定してください。

 

 

適用製品

V850用コンパイラパッケージ [CA850]

 

他にご質問がございましたら、リクエストを送信してください