Где зарегистрирована система x86-64 V V ABI?

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

Есть ли новый авторитетный дом для документа?

Ответ 1

Система V x86-64 psABI поддерживается на GitHub. Страница HJ Lu github имеет вики со ссылками на текущие версии документов x86-64 и i386 SystemV psABI и на форумы, где обновления обсуждаются.

См. x86 tag wiki для прямых ссылок на последние версии. (Этот ответ может быть устаревшим).

На данный момент текущая версия для x86-64 - r252 (черновик 0.99.8 апреля 2016 г.), а текущая версия для i386 - 1.1 (включает AVX512). Неофициально, требуется расширять узкие аргументы до 32-бит, поскольку от этого зависит clang. Надеемся, что будущая редакция ABI будет документировать это.

x32 ABI (32-разрядные указатели в длинном режиме) является частью документа x86-64 ABI. См. Главу 10: Модель программирования ILP32.


Обратите внимание, что документы psABI, специфичные для процессора, разработаны в качестве дополнения к менее часто обновляемому System V gABI, размещенному на SCO сайт.


Связано: Какие соглашения о вызовах для системных вызовов UNIX и Linux на i386 и x86-64 описывают соглашение о вызове системного вызова для x86-64 SysV (as а также i386 Linux против FreeBSD).

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


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

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