2012-05-08 25 views
5

我目前正在将为ARM编写的编译器移植到另一个目标架构。我发现ARM存在两种不同的ABIAPCS_ABIAAPCS_ABIARM:APCS和AAPCS ABI有什么区别?

我使用了它并引用了ARM手册,但还没有找到它们之间的区别。

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

顺便说一下,APCS是ARM过程调用标准的缩写,以及ARM架构的过程调用标准的AAPCS。 (难道他们的意思不一样吗?)

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

回答

9

ARM docs

PCS过程调用标准。

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

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

此外,从相同的文档,

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

所以,你可以忘掉废弃APCS,并开始下AAPCS