2012-05-08 16 views
5

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?

Respuesta

9

De ARM docs,

PCS llamada a procedimiento estándar.

AAPCS Procedimiento Llamada estándar para la arquitectura ARM (esta norma). (estándar actual)

APCS Procedimiento ARM llamada estándar (obsoleta).

Asimismo, desde el mismo documento,

El AAPCS encarna la quinta revisión importante de la revisión mayor APCS y tercer de los CPT. Forma parte de la especificación ABI completa para ARM Architecture.

Así que usted puede olvidarse de la APCS obsoleto y comience a seguir AAPCS

Cuestiones relacionadas