5
我目前正在将为ARM编写的编译器移植到另一个目标架构。我发现ARM存在两种不同的ABI
:APCS_ABI
和AAPCS_ABI
。ARM:APCS和AAPCS ABI有什么区别?
我使用了它并引用了ARM手册,但还没有找到它们之间的区别。
但是,在编译器后端的实现中,两种ABIs
被区别对待并具有单独的实现。
顺便说一下,APCS
是ARM过程调用标准的缩写,以及ARM架构的过程调用标准的AAPCS
。 (难道他们的意思不一样吗?)
那么APCS
和AAPCS
之间有什么区别?为什么定义了两种不同的ABIs
?