[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.14.1 M680x0 オプション

以下の ‘-m’ オプションが 68000 シリーズ向けに定義されている。 これらのオプションのデフォルト値は、コンフィギュレーション時に 68000 のどの形式が選択されたかに依る。最も共通する選択のデフォルトは 以下の通り。

-m68000
-mc68000

68000 用の出力を生成する。これは、コンパイラが 68000 ベースのシステム向けにコンフィギュレーションされた場合の デフォルトである。

このオプションは、68000 や EC000 のコアを持つマイクロコントローラ、 68008、68302、68306、68307、68322、68328、68356 等に対して 使う。

-m68020
-mc68020

68020 用の出力を生成する。これは、コンパイラが 68020 ベースのシステム向けにコンフィギュレーションされた場合の デフォルトである。

-m68881

浮動小数点数向けの 68881 の命令を含む出力を生成する。 これは、‘-nfp’ がコンフィギュレーション時に指定されない限り、 ほとんどの 68020 のシステムのデフォルトである。

-m68030

68030 用の出力を生成する。これは、コンパイラが 68030 ベースのシステム向けにコンフィギュレーションされた場合の デフォルトである。

-m68040

68040 用の出力を生成する。これは、コンパイラが 68040 ベースのシステム向けにコンフィギュレーションされた場合の デフォルトである。

このオプションは、68040 ではソフトウェアでエミュレートしなければ ならない 68881/68882 の命令を禁止する。読者の 68040 システムに これらの命令をエミュレートしなければならないようなコードがなければ、 このオプションを使うこと。

-m68060

68060 用の出力を生成する。これは、コンパイラが 68060 ベースのシステム向けにコンフィギュレーションされた場合の デフォルトである。

このオプションは、68060 ではソフトウェアでエミュレートしなければ ならない 68881/68882 の命令を禁止する。読者の 68060 システムに これらの命令をエミュレートしなければならないようなコードがなければ、 このオプションを使うこと。

-mcpu32

CPU32 向けの出力を生成する。これは、GCC が CPU32 ベースのシステム 向けにコンフィギュレーションされたときのデフォルトである。

このオプションは、CPU32 や CPU32+ のコアを持つマイクロコントローラ、 68330、68331、68332、68333、68334、68336、68340、68341、68349、68360 等に対して使う。

-m5200

520X 「コールドファイア」シリーズの CPU 用にコードを生成する。 GNU C コンパイラが 520X ベースのシステム用にコンフィギュレーション された場合のデフォルトになる。

このオプションは、5200 のコアを持つマイクロコントローラ、 MCF5202、MCF5203、MCF5204、MCF5202 等に使う。

-m68020-40

68040 用に出力を生成するが、新しい命令は何も使わない。 この結果、68020/68881 や 68030、68040 のどれでも比較的効率の良い コードが生成される。生成されたコードでは、68881 の命令を使っており、 68040 ではエミュレートされる。

-m68020-60

68060 用に出力を生成するが、新しい命令は何も使わない。 この結果、68020/68881 や 68030、68040 のどれでも比較的効率の良い コードが生成される。生成されたコードでは、68881 の命令を使っており、 68060 ではエミュレートされる。

-mfpa

Sun の FPA 浮動小数点命令を含むコードを生成する。

-msoft-float

浮動小数点演算に関するライブラリ呼出しを含む出力を生成する。 警告必要となるライブラリは、全ての m68k のターゲットで 利用可能な訳ではない。普通はその機種で標準の C コンパイラの機能が 使われるが、これはクロスコンパイルの場合は直接は使えない。 クロスコンパイルの場合は、適切なライブラリ関数が提供できるよう 読者自身で調整を行なわなければならない。組み込みターゲットの ‘m68k-*-aout’ と ‘m68k-*-coff’ では、ソフトウェアによる 浮動小数点演算をサポートしている。

-mshort

int 型を short int と同じ 16 ビット長とする。

-mnobitfield

ビットフィールド命令を使わない。 ‘-m68000’、‘-mcpu32’、‘-m5200’ オプションは、 ‘-mnobitfield’ を暗黙に含む。

-mbitfield

ビットフィールド命令を使う。 ‘-m68020’ オプションは、‘-mbitfield’ を暗黙に含む。 68020 向けのコンフィギュレーションを使う場合のデフォルトである。

-mrtd

別の関数呼び出し規約を使う。その規約では、引数の数が固定している 関数は、rtd 命令で戻る。この命令は戻る際に引数を ポップする。これにより、呼び出し側では、引数をポップする必要が ないので命令を一個節約できる。

この呼び出し規約は、Unix で通常使われているものと互換性がない。 このため、Unix のコンパイラでコンパイルされたライブラリを 呼び出す必要があるときには使えない。

また、可変個数の引数を取る全ての関数(printf を含む)について 関数プロトタイプを用意しなければならない。そうしないと、これらの 関数に対する呼び出しコードが正しく生成されないからである。

さらに、あまりたくさん引数をつけて関数を呼び出すと全く正しくない コードが生成される。(普通は、余分な引数は無視され害がない。)

rtd 命令は、68010、68020、68030、68040、68060、CPU32 といった プロセッサにあるが、68000 や 5200 にはない。

-malign-int
-mno-align-int

GCC が intlonglong longfloatdoublelong double の変数を 32ビット境界に置く (‘-malign-int’) か、16ビット境界に置く(‘-mno-align-int’)かを 制御する。変数を 32 ビット境界に整列させると、32ビットバスのプロセッサでは いくらか高速になるコードを生成するが、メモリを余分に消費する。

注意:-malign-int’ オプションを指定すると、 GCC は上で列挙した型を含む構造体を、m68k 用の、公表されている ほとんどのアプリケーション・バイナリ・インターフェース仕様とは 異なるアライメントを取るように置く。


This document was generated using texi2html 1.78.