Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ARM : What's the difference between APCS and AAPCS ABI?

Tags:

arm

I'm currently porting a compiler written for ARM to another target architecture. I found there exists two different kinds of ABI for ARM: APCS_ABI and AAPCS_ABI.

I googled it and referenced the ARM manual, but haven't found the differences between them.

In the implementation of the compiler backend, however, the two kinds of ABIs are treated differently and have seperate implementations.

By the way, APCS is the abbreviation of ARM Procedure Call Standard, and AAPCS of Procedure Call Standard for the ARM Architecture. (Don't they mean the same thing ?)

So what's the difference between APCS and AAPCS? Why two different kinds of ABIs are defined?

like image 701
lei_z Avatar asked May 08 '12 08:05

lei_z


1 Answers

From ARM docs,

PCS Procedure Call Standard.

AAPCS Procedure Call Standard for the ARM Architecture (this standard). (current standard )

APCS ARM Procedure Call Standard (obsolete).

Also, from the same doc,

The AAPCS embodies the fifth major revision of the APCS and third major revision of the TPCS. It forms part of the complete ABI specification for the ARM Architecture.

So you can forget about the obsoleted APCS and start following AAPCS

like image 64
Pavan Manjunath Avatar answered Sep 21 '22 01:09

Pavan Manjunath