9

我目前正在将一个为 ARM 编写的编译器移植到另一个目标架构。ABI我发现ARM存在两种不同的类型:APCS_ABIAAPCS_ABI.

我用谷歌搜索并参考了 ARM 手册,但没有发现它们之间的区别。

然而,在编译器后端的实现中,这两种ABIs处理方式不同,并且有不同的实现。

顺便说一下,APCS是ARM Procedure Call Standard的缩写,是AAPCSARM Architecture的Procedure Call Standard的缩写。(他们的意思不是一样吗?)

APCS那么和 和有什么区别AAPCS呢?为什么定义了两种不同的类型ABIs

4

1 回答 1

13

ARM 文档

PCS 过程调用标准。

ARM 体系结构的 AAPCS 过程调用标准(本标准)。(现行标准

APCS ARM 过程调用标准(已过时)。

此外,来自同一个文档,

AAPCS 体现了 APCS 的第五次主要修订和 TPCS 的第三次主要修订。它构成了 ARM 体系结构的完整 ABI 规范的一部分。

所以你可以忘记过时的APCS并开始关注AAPCS

于 2012-05-08T08:17:50.443 回答