2012-05-08 19 views
5

Aktualnie przesyłam kompilator napisany dla ARM do innej docelowej architektury. Zauważyłem, że istnieją dwa różne rodzaje ABI dla ARM: APCS_ABI i AAPCS_ABI.ARM: Jaka jest różnica między APCS i AAPCS ABI?

Wyszukałem go i odniosłem się do podręcznika ARM, ale nie znalazłem między nimi różnic.

W implementacji backendu kompilatora oba typy ABIs są jednak traktowane inaczej i mają osobne implementacje.

Przy okazji, APCS jest skrótem nazwy ARM Procedure Call Standard i AAPCS procedury Call Standard dla architektury ARM. (Czy to nie to samo?)

Jaka jest różnica między APCS a AAPCS? Dlaczego zdefiniowano dwa różne rodzaje ABIs?

Odpowiedz

9

Od ARM docs,

PCS Procedure Call standardowa.

Procedura AAPCS Call Standard dla architektury ARM (ten standard). (Obecny standard)

APCs ARM wywołania procedury standardowe (przestarzałe).

Ponadto, w tym samym dokumencie,

AAPCS reprezentuje piątą znaczącą zmianę głównego zmiany TPCS APCs i trzeci . Stanowi część kompletnej specyfikacji ABI dla architektury ARM.

Więc można zapomnieć o zastąpiony APCS i rozpocząć następne AAPCS

Powiązane problemy