[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
以下の ‘-m’ オプションが、MIPS 系コンピュータ用に定義されている。
-mcpu=cpu type
命令スケジューリングの際の機種のデフォルトを cpu type と想定する。 cpu type は、‘r2000’、‘r3000’、‘r3900’、‘r4000’、 ‘r4100’、‘r4300’、‘r4400’、‘r4600’、‘r4650’、 ‘r5000’、‘r6000’、‘r8000’、‘orion’ のどれかである。 さらに、‘r2000’、‘r3000’、‘r4000’、‘r5000’、‘r6000’ は、‘r2k’(あるいは ‘r2K’)、‘r3k’ 等のように省略できる。 ある特定の cpu type を選ぶとその特定のチップに適したスケジューリング を行なう一方で、‘-mipsX’ や ‘-mabi’ を指定しない限り、 MIPS ISA(Instruction Set Architecture、命令セットアーキテクチャ)の レベル 1 に合わないコードは何も生成しない。
-mips1
MIPS ISA のレベル 1 の命令を発行する。これがデフォルトである。 ‘r3000’ が、この ISA レベルのデフォルトの CPU タイプである。
-mips2
MIPS ISA のレベル 2 の命令(branch likely, square root 命令)を発行する。 ‘r6000’ が、この ISA レベルのデフォルトの CPU タイプである。
-mips3
MIPS ISA のレベル 3 の命令(64ビット命令)を発行する。 ‘r4000’ が、この ISA レベルのデフォルトの CPU タイプである。
-mips4
MIPS ISA のレベル 4 の命令(条件付き move 命令、プリフェッチ命令、 強化された FPU 命令)を発行する。‘r8000’ は、この ISA レベルの デフォルトの cpu type である。
-mfp32
32個の32ビット浮動小数点レジスタが利用可能であることを仮定する。 これはデフォルトである。
-mfp64
32個の64ビット浮動小数点レジスタが利用可能であることを仮定する。 これは、‘-mips3’ オプションが指定されたときのデフォルトである。
-mgp32
32個の32ビット汎用レジスタが利用可能であることを仮定する。 これはデフォルトである。
-mgp64
32個の64ビット汎用レジスタが利用可能であることを仮定する。 これは、‘-mips3’ オプションが指定されたときのデフォルトである。
-mint64
long 型と int 型を強制的に 64 ビット幅にする。 デフォルトについての説明とポインタの大きさについては ‘-mlong32’ を参照のこと。
-mlong64
long 型を強制的に 64 ビットにする。 デフォルトについての説明とポインタの大きさについては ‘-mlong32’ を参照のこと。
-mlong32
long 型、int 型、ポインタ型を強制的に 32 ビット幅にする。
‘-mlong32’、‘-mlong64’、‘-mint64’ のどれも指定 されていないと、int、long、ポインタのサイズは、ABI と選択された ISA に 依存する。‘-mabi=64’ の場合、int は 32 ビット幅で long は 64 ビット幅 である。‘-mabi=eabi’ の場合、‘-mips1’ か ‘-mips2’ が 指定されていると、int と long は 32 ビット幅になる。‘-mabi=eabi’ の 場合、それより高い ISA が指定されていると、int は 32 ビット幅で、 long が 64 ビット幅になる。ポインタ型の幅は、long の幅と汎用レジスタの 幅の小さいほうになる(これは、ISA に依存する)。
-mabi=32
-mabi=o64
-mabi=n32
-mabi=64
-mabi=eabi
指定された ABI 用のコードを生成する。デフォルトの命令レベルは、 ‘32’ に対しては ‘-mips1’ であり、‘n32’ に対しては ‘-mips3’、その他に対しては ‘-mips4’ である。逆に、 ‘-mips1’ か ‘-mips2’ を指定するとデフォルトの ABI は ‘32’ になり、それ以外は ‘64’ になる。
-mmips-as
MIPS アセンブラ用のコードを生成し、通常のデバッグ情報を追加するために ‘mips-tfile’ を起動する。これは、OSF/rose オブジェクト形式を 使っている、OSF/1 参照プラットフォーム以外の全てのプラットフォームでの デフォルトである。‘-gstabs’ か ‘-gstabs+’ の どちらかのオプションを使うと、‘mips-tfile’ プログラムが、 MIPS ECOFF 内に stabs 形式のデバッグ情報を包み込む。
-mgas
GNU アセンブラ用のコードを生成する。これは、OSF/rose オブジェクト形式 を使っている、OSF/1 の参照プラットフォームではデフォルトである。 また、configure のオプション ‘--with-gnu-as’ が指定されたときの デフォルトでもある。
-msplit-addresses
-mno-split-addresses
アドレス定数の上位部と下位部を別々にロードするコードを生成する。
これにより、gcc
が、アドレスの上位ビットを無駄にロードしないように
最適化することが可能になる。
この最適化には、GNU as と GNU ld が必要になる。
この最適化は、GNU as と GNU ld が標準のツールである幾つかの組み込み
ターゲットではデフォルトで有効になる。
-mrnames
-mno-rnames
‘-mrnames’ を指定すると、レジスタ名として、ハードウェア名の代わりに、 MIPS のソフトウェア名(例えば、$4 の代わりに a0)を 使ったコードを出力する。このオプションをサポートしているアセンブラは Algorithmics のアセンブラだけである。
-mgpopt
-mno-gpopt
‘-mgpopt’ オプションを指定すると、全てのデータ宣言を、 テキストセクションの命令部分の前に書き出す。これにより MIPS のアセンブラが 小さいグローバルおよび静的データ項目に対し、二語ではなく、一語による メモリ参照を生成することが可能になる。最適化が指定されている場合には、 これはデフォルトで有効になる。
-mstats
-mno-stats
‘-mstats’ オプションを指定すると、非インライン関数が処理される 度に、標準エラー出力に一行出力し、プログラムの統計情報(セーブされた レジスタ数、スタックの大きさ等)を表示する。
-mmemcpy
-mno-memcpy
‘-mmemcpy’ オプションを指定すると、全てのブロック移動に対し、 インラインコードを生成する代わりに、適切な文字列関数(‘memcpy’ か ‘bcopy’)を呼び出すようにする。
-mmips-tfile
-mno-mips-tfile
‘-mno-mips-tfile’ を指定すると、MIPS のアセンブラがデバッグ情報を 追加した後のオブジェクトファイルに対し、‘mips-tfile’ プログラムに よる後処理を行なわない。‘mips-tfile’ を実行しておかないと、 デバッガからローカル変数の情報が扱えなくなる。さらに、‘stage2’ と ‘stage3’ のオブジェクトには、アセンブラに渡された 一時ファイル名が、オブジェクトファイル内に埋め込まれた形で 入っている。このため、‘stage2’ のオブジェクトと ‘stage3’ のオブジェクトが同じになることはない。‘-mno-mips-tfile’ オプションを 指定するのは、‘mips-tfile’ プログラムにバグがあり、コンパイルが 行えない場合にだけに術器である。
-msoft-float
浮動小数点用ライブラリ呼び出しを含む出力を生成する。 警告: 必要となるライブラリは GCC の一部ではない。 普通はその機種の通常の C コンパイラの機能が 使われるが、クロスコンパイルの場合はこれをそのまま行なうことはできない。 クロスコンパイルの場合は、適切なライブラリ関数を自分で用意しなければ ならない。
-mhard-float
浮動小数点命令を含む出力を生成する。これは、GCC のソースを変更しなければ、 デフォルトである。
-mabicalls
-mno-abicalls
位置独立コード用に、System V.4 用の移植で使っている疑似命令 ‘.abicalls’、‘.cpload’、‘.cprestore’ を生成する (あるいは生成しない)。
-mlong-calls
-mno-long-calls
全ての呼出しを ‘JALR’ 命令で行う。このためには、呼出しの前に、 関数のアドレスをレジスタにロードしておく必要がある。 このオプションを使う必要があるのは、現在の 512 メガバイトのセグメント の外側の関数を、ポインタ経由でなく呼び出す場合である。
-mhalf-pic
-mno-half-pic
外部参照へのポインタを、テキストセクションに置くのではなく、 データセクションに置いてロードするようにする。
-membedded-pic
-mno-embedded-pic
いくつかの組み込みシステム向けに適した PIC コードを生成する。 全ての呼出しは PC 相対アドレスを使って行われ、全てのデータのアドレスは $gp レジスタを使って扱われる。これには、そのための作業のほとんどを 行う GNU as と GNU ld が必要である。これは、現在、ECOFF を 使っているターゲットでしか動作していない。ELF では動いていない。
-membedded-data
-mno-embedded-data
可能であれば、変数を、まず最初に読み出し専用データセクションに割り当てる。 次に可能であれば、小データセクションに割り当てる。さもなければ、 データセクションに置く。こうすると、デフォルトよりも幾分遅いコードに なるが、実行時に必要な RAM の量が小さくなるので、いくつかの組み込みシステム にとっては望ましいだろう。
-msingle-float
-mdouble-float
‘-msingle-float’ オプションを指定すると、‘r4650’ チップのように、 浮動小数点コプロセッサが単精度演算しかサポートしていないと 想定する。‘-mdouble-float’ オプションを指定すると、 倍精度演算を使うようになる。こちらがデフォルトである。
-mmad
-mno-mad
‘r4650’ チップの場合のように、‘mad’、‘madu’、‘mul’ 命令を使うことを許す。
-m4650
‘-msingle-float’、‘-mmad’、それに少なくとも現在のところでは、 ‘-mcpu=r4650’ を有効にする。
-mips16
-mno-mips16
16ビット命令を有効にする。
-mentry
疑似命令 entry と exit を使う。このオプションは ‘-mips16’ を 一緒にしか使えない。
-EL
リトルエンディアン・モードのプロセッサ用にコードをコンパイルする。 必要となるライブラリが存在すると仮定する。
-EB
ビッグエンディアン・モードのプロセッサ用にコードをコンパイルする。 必要となるライブラリが存在すると仮定する。
-G num
num バイト以下の大きさのグローバルなデータ項目と静的な データ項目を、普通のデータセクションや bss セクションではなく、 小データセクションや小 bss セクションに置く。 これにより、アセンブラが、通常の 2 命令のメモリ参照の代わりに、 グローバルポインタ(gp あるいは $28)に基づいた 一命令のメモリ参照を生成することが可能になる。 num のデフォルト値は、MIPS のアセンブラを使う場合には 8 で、 GNU アセンブラを使う場合には 0 である。 ‘-G num’ オプションはアセンブラとリンカにも渡される。 全てのモジュールは、同じ値の ‘-G num’ でコンパイル しなければならない。
-nocpp
MIPS アセンブラに対し、ユーザのアセンブラソースファイル(サフィックスが ‘.s’ のもの)をアセンブルするときに、アセンブラのプリプロセッサを 実行しないように指示する。
これらのオプションは、マシン記述の TARGET_SWITCHES
マクロで
定義されている。こられのオプションのデフォルトも、このマクロで定義
されているので、デフォルトを変更するが可能である。
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This document was generated
using texi2html 1.78.