2

我在看一个关于原子比较和交换以及 gcc 内在函数的问题。我注意到从gcc 手册中引用的答案(注意我看到的答案是从早期版本的 gcc 中引用的,但我已经链接到最新版本的手册,因为我已经检查过是否有任何变化)。但是,当我查看手册中的文本时,我发现它似乎是引用Itanium而不是x86

以下内置函数旨在与英特尔安腾处理器特定应用程序二进制接口第 7.4 节中描述的那些兼容。因此,它们背离了使用“__builtin_”前缀的正常 GCC 实践,并且它们被重载以便它们可以在多种类型上工作。

我的问题是为什么 gcc 引用 Itanium 文档,这会影响内在函数在 x86 上的工作方式吗?是否有任何差异,或者是否可以安全地假设即使 gcc 手册引用了 Itanium 手册,gcc 手册描述的所有内容都可以在 x86 系统上正常工作?

4

1 回答 1

1

我的理解是,很多 gcc 的 ABI 决策(egcs 分支)都是基于好船 Itanic 的 ABI 规范。这包括 C++ 符号的名称修改约定。当实际处理器可用时,我们付出了巨大的努力(Project Trillian)让 IA-64 Linux(和 GCC)准备就绪。语义旨在独立于平台,尽管它们将被内置函数替换__atomic

于 2012-06-14T17:40:40.510 回答