2012-05-08 2 views
5

Ich portiere derzeit einen für ARM geschriebenen Compiler in eine andere Zielarchitektur. Ich habe gefunden, dass es zwei verschiedene Arten von ABI für ARM gibt: APCS_ABI und AAPCS_ABI.ARM: Was ist der Unterschied zwischen APCS und AAPCS ABI?

Ich googelte es und referenzierte das ARM-Handbuch, aber habe nicht die Unterschiede zwischen ihnen gefunden.

Bei der Implementierung des Compiler-Backends werden jedoch die beiden Arten ABIs unterschiedlich behandelt und haben separate Implementierungen.

Übrigens ist APCS die Abkürzung von ARM Procedure Call Standard und AAPCS von Procedure Call Standard für die ARM-Architektur. (Bedeutet das nicht dasselbe?)

Was ist der Unterschied zwischen APCS und AAPCS? Warum sind zwei verschiedene Arten von ABIs definiert?

Antwort

9

Von ARM docs,

PCS Procedure Call-Standard.

AAPCS-Prozedur-Standard für die ARM-Architektur (dieser Standard). (aktuelle Standard)

APCS ARM Procedure Call Standard- (veraltet).

Auch aus dem gleichen doc,

Der AAPCS verkörpert die fünfte große Überarbeitung der APCS und dritten größeren Revision der TPCS. Es ist Teil der vollständigen ABI Spezifikation für die ARM-Architektur.

So können Sie über die veralteten APCS vergessen und folgt AAPCS

Verwandte Themen