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

lei*_*i_z 6 arm

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

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

但是,在编译器后端的实现中,这两种ABIs处理方式不同,并且具有单独的实现.

顺便说一句,它APCS是ARM过程调用标准的缩写,以及AAPCSARM体系结构的过程调用标准的缩写.(他们的意思不一样吗?)

那么APCS和之间的区别是AAPCS什么?为什么ABIs要定义两种不同的类型?

Pav*_*ath 10

来自ARM文档,

PCS程序调用标准.

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

APCS ARM过程调用标准(已废弃).

另外,来自同一个文档,

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

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