5

-m486でフラグを使用してコンパイルする必要がある古いコードがありGCCます。しかし、そのフラグはありません。それから私はこのページ-mtune=i486を見つけて-arch=i486
読みました。しかし、どれが最適なのかまだわかりませんか?-m486

4

1 に答える 1

10

この-marchオプションは、使用できる命令のリストを定義し、-mtuneオプションは後で最適化プロセスを変更します。

通常-march、最小要件を指定し-mtune、大多数のユーザーが持っているものを最適化するために使用します。

たとえば、IA32 アーキテクチャでは、文字列の処理や命令の繰り返しに関するさまざまな命令が定義されています。386 および 486 では、これらの命令は明示的なアセンブラー コードよりも高速で小さくなります。これは、命令フェッチおよびデコード ステージをスキップできるためです。一方、新しいモデルでは、これらの命令は、各処理ステップが直前のステップに直接依存するため、命令パイプラインを詰まらせます。 CPU の並列実行機能が無駄になります。

Linux ディストリビューションは通常-march=i486 -mtune=i686、486 にインストールして実行できるようにするために使用しますが、大多数のユーザーが最新の CPU を使用しているため、これらに最適に実行することに重点が置かれています。

于 2012-10-17T07:41:06.550 に答える