Wo ist der x86-64-System V ABI dokumentiert?
Die x86-64-System V ABI (auf alles außer Windows) verwendet, um live bei http://x86-64.org/documentation/abi.pdf, aber diese site hat jetzt gefallen aus dem internet.
Gibt es eine neue maßgebliche Hause für das Dokument?
- Die 0.99.6 Entwurf ist die neueste version, ich bin mir dessen bewusst. Zu bekommen um den kaputten link auf die verweisende Seite, versuchen, hier.
- Die www.x86-64.org Website inzwischen zurück auf dem Planeten, nach einer kurzen ein Jahr Pause. Ich glaube nicht, dass wir jemals wissen, aber ich würde gerne wissen, die Hintergrundgeschichte gibt. 🙂 AMD Schrägstriche budget von $100 im Wert von hosting-Gebühren?
- agner.org/optimize/calling_conventions.pdf
- Würde auch gerne wissen, die Hintergrundgeschichte. web.archive.org/web/20160609221003/http://www.x86-64.org/... ist immer noch ein nützliches was-neues-im-x86-64-Leitfaden für Anfänger, die gefolgt einem 32-bit-tutorial und sind jetzt verwirrt durch x86-64. Wirklich froh, dass die Wayback machine existiert.
- Mögliche Duplikate von wo ist amd64 psABI?
- eigentlich ist es die andere Weise herum. Diese Frage hat eine aktuelle Antwort, so sollte der andere link hier.
Du musst angemeldet sein, um einen Kommentar abzugeben.
System-V-x86-64 psABI wird auf GitHub gepflegt. H. J. Lu ' s github-Seite hat ein wiki mit links zu den aktuellen Versionen der x86-64 und i386 SystemV psABI Dokumente und die Foren, wo die updates werden diskutiert.
Finden Sie in der x86 tag wiki für direkte links zu den neuesten Versionen. (Diese Antwort kann veraltet sein).
Ab jetzt die aktuelle version für x86-64 ist r252 (Entwurf 0.99.8 April 2016), und die aktuelle version für i386 ist 1.1 (enthält AVX512). Inoffiziell, Zeichen-Erweiterung schmalen args 32-bit-Version erforderlich ist, denn das Geräusch hängt davon ab. Hoffentlich eine Zukunft ABI-revision-Dokument.
X32-ABI (32-bit-Zeiger im long mode) ist Teil des x86-64-ABI-doc. Siehe Kapitel 10: ILP32 Programmiermodell.
Beachten Sie, dass die Prozessor-Spezifische psABI docs sind konzipiert als Ergänzung zu den weniger Häufig aktualisiert System-V-gABI, gehostet auf SCO-website.
Verwandte: Was sind die Aufrufkonventionen für UNIX & Linux-Systemaufrufe auf i386 und x86-64 beschreibt die system-call-Aufruf-Konvention für die x86-64-SysV (ebenso wie i386-Linux vs. FreeBSD).
Es auch fasst die Funktion Aufrufkonventionen für ganzzahlige Argumente.
System Anrufe nicht nehmen, FP oder SSE/AVX Vektor args, oder Strukturen, die von Wert, so wird die Funktion-Aufrufkonvention ist komplizierter.
Agner Fog hat eine Aufrufkonventionen guide (für Windows und Sys-V, und die verschiedenen Konventionen für 32-bit-und Tipps/tricks für das schreiben von Funktionen die Sie verwenden können, auf jeder Plattform). Dies ist eine separate PDF-Datei von seiner Optimierungs-und Mikroarchitektur, Führungen und Unterricht-Tabellen (die sind wichtig zu Lesen, wenn Sie sich über Leistung.)
Wikipedia hat eine x86-Aufrufkonventionen Artikel beschreibt die verschiedenen Konventionen, aber meist nicht detailliert genug, um Sie für irgendetwas anderes als einfache integer-Argumente. (z.B. keine Beschreibung von struct-Verpackung-Regeln).
Linux standard base
Den Die Linux Standard Base, das kann sein betrachtet durch einige der maßgebliche spec für diese Sache, hat Rubrik namens 7.2. "Funktions-Aufruf-Sequenz" Punkte der 2.1. "Normative Verweisungen im Abschnitt" enthält die folgenden links:
Ich würde daher empfehlen, mit diesen Versionen von den Spezifikationen wie das kanonische lieben, es sei denn, Sie haben guten Grund, es anders zu machen.