2013-08-08 6 views
16

のx86-64(Windowsの以外のすべてで使用される)システムV ABIはhttp://x86-64.org/documentation/abi.pdfに住んでいたが、そのサイトは今、インターネットから落ちました。x86-64 System V ABIはどこに文書化されていますか?

文書のための新たな権威家はありますか?

+1

** 0.99.6 **のドラフトは、私が知っている最新のバージョンです。参照ページで壊れたリンクを回避するには、[ここ](http://refspecs.linuxbase.org/elf/)を試してください。 –

+0

http://agner.org/optimize/calling_conventions.pdf – Elalfer

+0

[amd64 psABIはどこですか?](https://stackoverflow.com/questions/13924652/where-is-amd64-psabi)の可能な複製は – jww

答えて

18

System Vのx86-64のpsABIはGitHubの上で維持されています。 H.J. Luのgithubページには、x86-64およびi386 SystemV psABIドキュメントのa wiki with links to the current versionsと、アップデートが議論されるフォーラムがあります。

は、最新バージョンへの直接リンクのためのtag wikiを参照してください。 (この回答は古いかもしれません)。

現時点ではx86-64 is r252 (Draft 0.99.8 April 2016)の現在のバージョン、i386 is 1.1(AVX512を含む)の現在のバージョンです。非公式に、sign-extending narrow args to 32-bit is required、これはclangが依存しているためです。うまくいけば、ABIの将来の改訂版ではそれが文書化されることを望みます

X32 ABIは、(長いモードでは32ビット・ポインタ)x86-64のABIドキュメントの一部です。第10章:ILP32プログラミングモデルを参照してください。


プロセッサ固有psABIドキュメントがSCOのウェブサイト上でホストされているSystem V gABIあまり頻繁に更新の補足として設計されていることに注意してください。


関連:What are the calling conventions for UNIX & Linux system calls on i386 and x86-64はx86-64のSysVの(だけでなく、FreeBSDの対のi386のLinux)のシステムコールの呼び出し規約を記述しています。

また、整数引数の規則を呼び出す機能をまとめたものです。 システムコールは、FPまたはSSE/AVXベクタargs、またはstructを値でとらないので、関数呼び出し規約はより複雑です。 (SYS V対Windows、および様々な32ビットのための規則、そしてあなたはどちらのプラットフォーム上で使用することができます書き込み機能のためのヒント/トリックをカバー)


Agner Fog has a calling conventions guide。これは、彼の最適化とマイクロアーキテクチャのガイドと命令表(パフォーマンスを気にする必要がある場合は必読)とは別のPDFです。単純な整数args以外のもの。 (例えば、構造体パッキング規則の記述はない)。

+1

X32 ABIは[X32 System Vアプリケーションバイナリインターフェイス](https://sites.google.com/site/x32abi/)にあります。GitHubではなくGoogleのサイト。 H.J. Luによって維持されているようである。私はなぜX32が同じ場所にないのだろうと思う。 – jww

+1

@ jww:x32は、少なくとも現在のドラフト0.99.8バージョンでは、主要なx86-64 psABI PDFの第10章に記載されています。たぶん別のPDFであったかもしれません。 –

関連する問題