-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文などの分岐先は対象ではありません。