-instalign4


コンパイル・オプション / オブジェクトオプション

[指定形式]

-instalign4[={loop|inmostloop}]

 

-

省略時解釈

分岐先の命令実行向け整合を行いません。

[詳細説明]

-

分岐先の命令実行向け整合を行います。

-

instalign4を指定した場合は4バイト配置アドレスを命令実行向け整合します。

-

命令実行向け整合とは、-instalign4のサブオプションで選択した種類の分岐先の命令が、アライメント数(4)の倍数であるアドレスをまたいでいる場合(*1)にだけ整合を取るものです。

-

分岐先の種類は、-instalign4のサブオプションの指定により次の3種類から選択します(*2)。

-

指定なし:関数先頭、switch文のcaseおよびdefaultラベル

-

inmostloop:各最内周ループの先頭、関数先頭、switch文のcaseおよびdefaultラベル

-

loop:各ループの先頭、関数先頭、switch文のcaseおよびdefaultラベル

-

本オプションを選択すると、プログラムセクションのアライメント数が1から4に変わります。

-

本オプションは、分岐先命令のアドレス整合することでRX CPUの命令キューを効率よく動作させ、プログラムの実行速度向上を図るものです。

-

次の用途を想定した仕様となっております。

-

instalign4 … 命令キューが32ビットのCPU(主にRX200シリーズ)で速度向上を図る場合

注 1.

命令サイズがアライメント数以下の場合です。命令サイズがアライメント数よりも大きい場合は、またいでいる箇所が2以上の場合にだけ整合を取ります。

注 2.

ここに挙げたもの以外の分岐先は、命令実行向け整合の対象ではありません。たとえば、loopを選択した場合はループの先頭は対象ですが、ループ内にあるループを構成しないif文などの分岐先は対象ではありません。

-

本オプションを使用しないでコンパイルして生成したオブジェクト・モジュール・ファイルや標準ライブラリとリンクした場合、リンク時にW0561322 の警告を出力しますが、動作は問題ありません。