title: ARM : What's the difference between APCS and AAPCS ABI?
body: <p>I'm currently porting a compiler written for ARM to another target architecture. I found there exists two different kinds of <code>ABI</code> for ARM: <code>APCS_ABI</code> and <code>AAPCS_ABI</code>.</p>
  
  <p>I googled it and referenced the ARM manual, but haven't found the differences between them. </p>
  
  <p>In the implementation of the compiler backend, however, the two kinds of <code>ABIs</code> are treated differently and have seperate implementations.</p>
  
  <p>By the way, <code>APCS</code> is the abbreviation of ARM Procedure Call Standard, and <code>AAPCS</code> of Procedure Call Standard for the ARM Architecture. (Don't they mean the same thing ?)</p>
  
  <p>So what's the difference between <code>APCS</code> and <code>AAPCS</code>? Why two different kinds of <code>ABIs</code> are defined?</p>