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

2.14.5 AMD29K オプション

以下の ‘-m’ オプションが AMD Am29000 用に定義されている。

-mdw

DW ビットが立っている、すなわちバイト演算と半語演算が ハードウェアにより直接サポートされていることを想定したコードを 生成する。これがデフォルトである。

-mndw

DW ビットが立っていないことを想定したコードを生成する。

-mbw

システムが、バイトと半語の書き込み演算をサポートしていることを想定した コードを生成する。これがデフォルトである。

-mnbw

システムが、バイトと半語の書き込み演算をサポートしていないことを想定した コードを生成する。‘-mnbw’ は ‘-mndw’ を含む。

-msmall

スモール・メモリ・モデルを使う。このモデルでは、関数のアドレスは 全て一個の 256KB のセグメント内にあるか、256k より小さい絶対アドレスに あることを想定する。これにより、call 命令が、 constconsthcalli という命令列の代わりに 使われる。

-mnormal

ノーマル・メモリ・モデルを使う。呼出し側関数が同一ファイル内にあるときのみ call 命令を生成し、それ以外の場合は calli 命令を生成する。 これは、各ファイルが 256 KB 未満であれば動作する。この場合、 実行形式全体は 256KB より大きくても良い。これがデフォルトである。

-mlarge

常に calli 命令を使う。一個のファイルをコンパイルしたときに 256KB より大きなコードになりそうなら、このオプションを指定する。

-m29050

Am29050 用のコードを生成する。

-m29000

Am29000 用のコードを生成する。これがデフォルトである。

-mkernel-registers

レジスタ gr96-gr127 への参照の代わりに、レジスタ gr64-gr95 への参照を生成する。このオプションは、ユーザモードのコードで使われるものとは 分離したグローバルレジスタのセットを必要とするカーネルコードを コンパイルするときに使うことができる。

このオプションを使うときは、‘-f’ オプションで指定するレジスタ名は、 通常のユーザモードの名前を使わなければならない。

-muser-registers

通常のグローバル・レジスタのセットである、gr96-gr127 を使う。 これがデフォルトである。

-mstack-check
-mno-stack-check

各スタック調整の後に、__msp_check への呼出しを挿入する (挿入しない)。これはカーネルコードで良く使われる。

-mstorem-bug
-mno-storem-bug

-mstorem-bug’ を指定すると、mstrim 命令と storem 命令を 分離して扱えない 29k プロセッサ(29050 を除く、現時点でのほとんどの 29000 チップ)を取り扱う。

-mno-reuse-arg-regs
-mreuse-arg-regs

-mno-reuse-arg-regs’ を指定すると、入力引数レジスタは 引数をそのままコピーするためにしか使わないようにする。 これは、宣言されたものよりも少ない引数で関数を呼び出しているのを 検出する手助けになる。

-mno-impure-text
-mimpure-text

-mimpure-text’ を、‘-shared’ に加えて指定すると、 享有オブジェクトをリンクするときにリンカに ‘-assert pure-text’ オプションを渡さないようにする。

-msoft-float

浮動小数点用ライブラリ呼び出しを含む出力を生成する。 警告: 必要となるライブラリは GCC の一部ではない。 普通はその機種の通常の C コンパイラの機能が 使われるが、クロスコンパイルの場合はこれをそのまま行なうことはできない。 クロスコンパイルの場合は、適切なライブラリ関数を自分で用意しなければ ならない。

-mno-multm

multm 命令や multmu 命令を生成しない。これは、これらの命令向けに トラップ・ハンドラを持たない幾つかの組み込みシステムで有用である。


This document was generated using texi2html 1.78.