Actualmente estoy portando un compilador escrito para ARM a otra arquitectura de destino. Encontré que existen dos tipos diferentes de ABI
para ARM: APCS_ABI
y AAPCS_ABI
.ARM: ¿Cuál es la diferencia entre APCS y AAPCS ABI?
Lo busqué en Google y hace referencia al manual de ARM, pero no he encontrado las diferencias entre ellos.
En la implementación del back-end del compilador, sin embargo, los dos tipos de ABIs
se tratan de manera diferente y tienen implementaciones separadas.
Por cierto, APCS
es la abreviatura de Procedimiento ARM llamada estándar, y AAPCS
de llamada a procedimiento estándar para la arquitectura ARM. (¿No significan lo mismo?)
¿Cuál es la diferencia entre APCS
y AAPCS
? ¿Por qué se definen dos tipos diferentes de ABIs
?