2013-08-08 10 views
16

Das x86-64-System V ABI (auf allen außer Windows) verwendet, um bei http://x86-64.org/documentation/abi.pdf zu leben, aber diese Website ist jetzt aus dem Internet gefallen.Wo wird das x86-64 System V ABI dokumentiert?

Gibt es eine neue autoritative Heimat für das Dokument?

+1

Der ** 0.99.6 ** Entwurf ist die neueste Version, die mir bekannt ist. Um den fehlerhaften Link auf der verweisenden Seite zu umgehen, versuchen Sie [hier] (http://refspecs.linuxbase.org/elf/). –

+0

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

+0

Mögliches Duplikat von [wo ist amd64 psABI?] (Https://stackoverflow.com/questions/13924652/where-is-amd64-psabi) – jww

Antwort

18

Das System V x86-64 psABI wird auf GitHub beibehalten. H.J. Lus Github-Seite hat a wiki with links to the current versions der x86-64 und i386 SystemV psABI-Dokumente, und zu den Foren, wo Updates diskutiert werden.

Siehe tag wiki für direkte Links zu den neuesten Versionen. (Diese Antwort ist möglicherweise veraltet).

Ab sofort die aktuelle Version für x86-64 is r252 (Draft 0.99.8 April 2016), und die aktuelle Version für i386 is 1.1 (enthält AVX512). Inoffiziell, sign-extending narrow args to 32-bit is required, weil Clang davon abhängt. Hoffentlich wird eine zukünftige ABI-Revision das dokumentieren.

Die x32 ABI (32-Bit-Zeiger im langen Modus) ist Teil des x86-64-ABI-Dokuments. Siehe Kapitel 10: ILP32 Programmiermodell.


Beachten Sie, dass der Prozessor-spezifischen psABI docs als Ergänzung ausgelegt ist, die weniger häufig aktualisiert System V gABI, auf SCOs Website gehostet.


Verwandte: What are the calling conventions for UNIX & Linux system calls on i386 and x86-64 beschreibt das System-Aufrufkonvention (sowie i386 Linux vs. FreeBSD) für x86-64 SysV aufrufen.

Es fasst auch die Funktion Aufrufkonventionen für Ganzzahlargumente zusammen. Systemaufrufe nehmen keine FP- oder SSE/AVX-Vektorargumente oder Strukturen nach Wert auf, daher ist die Funktionsaufrufkonvention komplizierter.


Agner Fog has a calling conventions guide (Abdeckung von Windows vs. Sys V und die verschiedenen Konventionen für 32-Bit und Tipps/Tricks zum Schreiben von Funktionen Sie auf beiden Plattformen verwenden können). Dies ist eine separate PDF-Datei von seinen Optimierungs- und Mikroarchitektur-Leitfäden und Anweisungstabellen (die wichtig sind, wenn Sie Wert auf Leistung legen.)

Wikipedia hat einen x86 calling conventions Artikel, der verschiedene Konventionen beschreibt, aber meistens nicht in genug Detail, um sie zu verwenden alles andere als einfache Ganzzahlargumente. (z. B. keine Beschreibung von Strukturpackungsregeln).

+1

Der X32 ABI befindet sich unter [X32 System V Application Binary Interface] (https://sites.google.com/site/x32abi/).Es ist eine Google-Site, kein GitHub; aber es scheint, von H.J. Lu aufrechterhalten zu werden. Ich frage mich, warum X32 nicht am selben Ort ist. – jww

+1

@jww: x32 ist in Kapitel 10 der Hauptversion x86-64 psABI PDF dokumentiert, zumindest in der aktuellen Version 0.99.8. Vielleicht war es früher ein separates PDF. –