Renesas Synergy™

FAQ 1009877 : CA850を使用していますが、ビルドを実行すると以下のウォーニングが出力されます。

Q: 質問

CA850を使用していますが、ビルドを実行すると以下のウォーニングが出力されます。

W3029: can not use r0 as destination in mul/mulu in V850ES core. replaced to r1.

このウォーニングの意味と抑止方法を教えてください。

 


A: 回答

W3029はV850ESコアの制限事項(*)に該当する可能性があるmulおよびmulu命令のディスティネーションレジスタとして使用しているr0レジスタをr1レジスタに置換したことを示すウォーニングです。

CA850はターゲットマイコンの区別をしないため、V850ESコア以外のマイコンを使用する場合も本ウォーニングを出力しレジスタの置換を行います。また、コンパイラが出力したmulおよびmulu命令に対しても同様の処理を行います。

ユーザープログラム内にインラインアセンブラでr1レジスタを使用しているソースがある場合、この置換によりr1レジスタの値が意図せず書き換わる可能性があるためウォーニングを出力します。インラインアセンブラでr1レジスタを使用していない場合は置換が行われてもユーザプログラムの動作に影響はありません。

下記の方法でオプション"-Wa,-woff=3029"を指定することで、本ウォーニングを抑止できます。

CubeSuiteまたはCubeSuite+環境での指定方法:
CA850 の[プロパティ] -> [コンパイル・オプション]タブ -> [その他] -> [その他の追加オプション]で"-Wa,-woff=3029"を指定。

 

PM+ 環境での指定方法:
[ツール]メニュー -> [コンパイラオプションの設定]ダイアログ -> [その他]タブの[他のオプション] で"-Wa,-woff=3029"を指定。

レジスタの置換機能とウォーニング抑止オプション(-Wa,-woff=3029)は以下のバージョンからサポートされています。

  CubeSuite環境 PM+環境
レジスタ置換: CA850 V3.43 CA850 V3.42
-Wa,-woff=3029: CA850 V3.45 CA850 V3.44

* 制限事項の詳細は以下ドキュメントを参照ください。
「V850ES アーキテクチャ編」→「A. 2 mul/mulu命令に関する制限事項」

 

適用製品

<

統合開発環境 CubeSuite
CS+ (旧 CubeSuite+)
V850用コンパイラパッケージ [CA850]
PM+
他にご質問がございましたら、リクエストを送信してください