現在、ARM用に作成されたコンパイラを別のターゲットアーキテクチャに移植しています。ABI
ARMには2つの異なる種類が存在することがわかりました:APCS_ABI
とAAPCS_ABI
。
私はそれをグーグルで検索してARMマニュアルを参照しましたが、それらの違いは見つかりませんでした。
ただし、コンパイラバックエンドの実装では、2種類のABIs
処理が異なり、実装が異なります。
ちなみに、APCS
はARM Procedure Call Standardの略語であり、ARMアーキテクチャのProcedureCallStandardの略語ですAAPCS
。(同じ意味ではありませんか?)
APCS
では、との違いは何AAPCS
ですか?なぜ2つの異なる種類ABIs
が定義されているのですか?