-
-mcpu=vX.YY.Z
-
MicroBlaze ハードウェアのバージョン v.X.YY.Z に適したコードを生成します。プロセッサ用に最適化された正しいコードを生成するには、このオプションでプロセッサのハードウェア バージョンを指定します。
指定するバージョンによって、
-mcpu
の動作は異なります。- Pr-v3.00.a
- 3 段プロセッサ パイプライン モードを使用します。命令を遅延スロットに移動する例外は禁止されません。
- v3.00.a および v4.00.a
- 3 段プロセッサ パイプライン モードを使用します。命令を遅延スロットに移動する例外は禁止されます。
- v5.00.a およびそれ以降
- 5 段プロセッサ パイプライン モードを使用します。命令を遅延スロットに移動する例外は禁止されません。
-
-mlittle-endian
/-mbig-endian
- コンパイルされているコードのターゲット マシンのエンディアンを選択するため、これらのオプションを使用します。生成されるバイナリ オブジェクト ファイルのエンディアンもこのオプションに基づいて設定されます。下位ツール (as、cc1、cc1plus、ld など) で該当するエンディアンを設定するため、GCC ドライバーはオプションを下位ツールに渡します。
デフォルトは
-mbig-endian
です。複数のエンディアンをとりまぜたオブジェクト ファイルをリンクさせることはできません。
-
-mno-xl-soft-mul
- 32 ビット乗算に対し、ハードウェア乗算命令を使用できるようにします。MicroBlaze プロセッサには、ハードウェア乗算リソースの使用をオン/オフにするオプションがあります。MicroBlaze でハードウェア乗算オプションがオンになっている場合は、このオプションを使用する必要があります。ハードウェア乗算を使用すると、アプリケーションのパフォーマンスが向上します。このオプションを使用すると、C プリプロセッサ定義
HAVE_HW_MUL
が自動的に定義されます。これにより、この機能が使用可能かどうかに基づいて、ハードウェアに適した C またはアセンブリ コードが記述されます。 -
-mxl-multiply-high
-
MicroBlaze には、32X32 ビット乗算の上位 32 ビットを計算する命令をイネーブルにするオプションがあります。このオプションは、コンパイラでこれらの上位ビット乗算命令を使用するよう指示します。このオプションを使用すると、C プリプロセッサ定義
HAVE_HW_MUL_HIGH
が自動的に定義されます。これにより、この機能が使用可能かどうかに基づいて、ハードウェアに適した C またはアセンブリ コードが記述されます。 -
-mno-xl-multiply-high
- 上位ビット乗算命令を使用しないよう指定します。このオプションがデフォルトです。
-
-mxl-soft-mul
-
MicroBlaze プロセッサにハードウェア乗算器がないことを示します。デバイスにハードウェア乗算器がない場合、32 ビット乗算演算はソフトウェア エミュレーション
routine__mulsi3
への呼び出しに置換されます。このオプションがデフォルトです。 -
-mno-xl-soft-div
-
MicroBlaze にハードウェア除算器をインスタンシエートできます。除算器がある場合、このオプションを指定すると、コンパイルされているプログラムでハードウェア除算命令が使用できるようになります。
プログラムに除算処理が多数含まれている場合、このオプションを使用するとパフォーマンスが向上します。このオプションを使用すると、C プリプロセッサ定義
HAVE_HW_DIV
が自動的に定義されます。これにより、この機能が使用可能かどうかに基づいて、ハードウェアに適した C またはアセンブリ コードが記述されます。 -
-mxl-soft-div
- ターゲットの MicroBlaze ハードウェア除算器がないことを示します。
このオプションがデフォルトです。このオプションを設定すると、すべての 32 ビット除算が対応するソフトウェア エミュレーション ルーチン (
__divsi3
、__udivsi3
) に置換されます。 -
-mxl-barrel-shift
-
MicroBlaze プロセッサは、バレル シフターを組み込むようコンフィギュレーションできます。プロセッサのバレル シフト機能を使用するには、
-mxl-barrel-shift
オプションを使用します。デフォルトではバレル シフターはないと判断され、オペランドのシフトには加算と乗算が使用されます。バレル シフターをイネーブルにすると、特に浮動小数点ライブラリを使用している場合に、アプリケーションの速度が大幅に向上します。このオプションを使用すると、C プリプロセッサ定義
HAVE_HW_BSHIFT
が自動的に定義されます。これにより、この機能が使用可能かどうかに基づいて、ハードウェアに適した C またはアセンブリ コードが記述されます。 -
-mno-xl-barrel-shift
- ハードウェア バレル シフト命令を使用しないよう指定します。このオプションがデフォルトです。
-
-mxl-pattern-compare
- コンパイラでのパターン比較命令の使用をオンにします。
パターン比較命令を使用すると、プログラムのブール演算の速度が向上します。また、パターン比較操作では、
strcpy
、strlen
、strcmp
などの文字列処理ルーチンにおいて、バイト長ではなくワード長での操作が可能になります。文字列処理ルーチンを多用するプログラムでは、これにより処理速度が大幅に向上します。このオプションを使用すると、C プリプロセッサ定義HAVE_HW_PCMP
が自動的に定義されます。これにより、この機能が使用可能かどうかに基づいて、ハードウェアに適した C またはアセンブリ コードが記述されます。 -
-mno-xl-pattern-compare
- パターン比較命令を使用しないよう指定します。これがデフォルトです。
-
-mhard-float
- コンパイラでの単精度浮動小数点命令 (
fadd
、frsub
、fmul
、fdiv
) の使用をオンにします。また、
fcmp.p
命令も使用します。p は、le
、ge
、lt
、gt
、eq
、ne
などの述語条件です。これらの命令は、ハードウェアで FPU がイネーブルの場合に、MicroBlaze でデコードおよび実行されます。このオプションを使用すると、C プリプロセッサ定義HAVE_HW_FPU
が自動的に定義されます。これにより、この機能が使用可能かどうかに基づいて、ハードウェアに適した C またはアセンブリ コードが記述されます。 -
-msoft-float
- 浮動小数点演算のソフトウェア エミュレーションを使用するよう指定します。このオプションがデフォルトです。
-
-mxl-float-convert
- コンパイラでの単精度浮動小数点変換命令 (fint および flt) の使用をオンにします。ハードウェアで FPU がイネーブルになっており、このオプションの命令がイネーブルになっていると、この命令が MicroBlaze によりネイティブにデコードされ、実行されます。
-
-mxl-float-sqrt
- コンパイラでの単精度浮動小数点平方根命令 (
fsqrt
) の使用をオンにします。ハードウェアで FPU がイネーブルになっており、このオプションの命令がイネーブルになっていると、この命令が MicroBlaze によりネイティブにデコードされ、実行されます。