2

アトミックな比較とスワップ、および gcc 組み込み関数に関する質問を見ていました。gcc マニュアルから回答が引用されていることに気付きました(以前のバージョンの gcc から引用された回答を見ましたが、何か変更があるかどうかを確認したため、最新バージョンのマニュアルにリンクしていることに注意してください)。ただし、マニュアルのテキストを見ると、Itanium以下ではなく参照しているように見えることがわかりましたx86

次のビルトインは、インテル Itanium プロセッサ固有のアプリケーション バイナリ インターフェイスのセクション 7.4 で説明されているものと互換性があることを意図しています。そのため、「__builtin_」プレフィックスを使用するという通常の GCC の慣行から逸脱し、さらに、複数の型で動作するようにオーバーロードされています。

私の質問は、gcc が Itanium のドキュメントを参照する理由と、それが組み込み関数が x86 でどのように機能するかに影響するかということです。gcc のマニュアルが Itanium のマニュアルを参照していても、gcc のマニュアルに記載されているすべてのものが x86 システムで正しく動作すると仮定することは安全ですか?

4

1 に答える 1

1

私の理解では、gccのABI決定(egcsフォーク)の多くは、優れた船ItanicのABI仕様に基づいていました。これには、C++シンボルの名前マングリング規則が含まれていました。実際のプロセッサが利用可能になったときにIA-64Linux(およびGCC)を準備するために、多大な努力(Project Trillian )が行われました。セマンティクスはプラットフォームに依存しないことを目的としていますが、ビルトインに置き換えられ__atomicます。

于 2012-06-14T17:40:40.510 に答える