2013-08-08 5 views
16

Система x86-64 V ABI (используемая на всех, кроме Windows) раньше жила на http://x86-64.org/documentation/abi.pdf, но этот сайт теперь упал с Интернета.Где хранится система x86-64 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

Система V x86-64 psABI поддерживается на GitHub. На странице github G.J. Lu's есть a wiki with links to the current versions документов x86-64 и i386 SystemV psABI, а также на форумах, на которых обсуждаются обновления.

См. 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 документы разработаны в качестве дополнения к менее часто обновляемый System V gABI, размещенную на веб-сайте ШОС.


Связанный: What are the calling conventions for UNIX & Linux system calls on i386 and x86-64 описывает системный вызов соглашение о вызовах для x86-64 SysV (а также i386 Linux против FreeBSD).

Он также суммирует соглашения о вызовах функций для целых аргументов. Системные вызовы не принимают векторные аргументы FP или SSE/AVX или структурируют по значению, поэтому соглашение о вызовах функций более сложное.


Agner Fog has a calling conventions guide (покрытие Окна против Sys V, а также различные конвенции для 32-битных, а также советы/хитрости для написания функций, которые можно использовать на любой платформе). Это отдельный PDF-файл из его руководств по оптимизации и микроархитектуры и таблиц инструкций (которые важны для чтения, если вы заботитесь о производительности.)

В статье в Википедии есть статья x86 calling conventions, в которой описываются различные соглашения, но в основном недостаточно подробно для их использования ничего, кроме простых целых аргументов. (например, описание правил структурирования упаковки).

+1

X32 ABI находится в [X32 System V Application Binary Interface] (https://sites.google.com/site/x32abi/).Его сайт Google, а не GitHub; но, по-видимому, он поддерживается Х. Дж. Лу. Интересно, почему X32 находится не в одном месте. – jww

+1

@jww: x32 документируется в главе 10 основного x86-64 psABI PDF, по крайней мере, в текущей версии версии 0.99.8. Возможно, это был отдельный PDF-файл. –