ARM:APCS和AAPCS ABI有什么区别?

时间:2012-05-08 08:02:18

标签: arm

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

我用Google搜索并引用了ARM手册,但没有发现它们之间的差异。

然而,在编译器后端的实现中,两种ABIs被区别对待并且具有单独的实现。

顺便说一下,APCS是ARM过程调用标准的缩写,而AAPCS是ARM体系结构的过程调用标准。 (他们的意思不一样吗?)

那么APCSAAPCS之间有什么区别?为什么定义了两种不同的ABIs

1 个答案:

答案 0 :(得分:10)

来自ARM docs

  

PCS程序调用标准。

     

AAPCS程序调用标准   ARM体系结构(此标准)。 (当前标准

     

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

另外,来自同一个文档,

  

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

因此,您可以忘记已废弃的APCS并开始关注AAPCS