x86-64 System V ABI在哪里logging?

x86-64 System V ABI(用于Windows以外的所有应用程序)曾用于生存在http://x86-64.org/documentation/abi.pdf ,但是该网站现在已经从互联网上掉下来了。

这个文件是否有一个新的权威之家?

System V x86-64 psABI在GitHub上维护。 HJ Lu的github页面有一个维基链接,指向当前版本的x86-64和i386 SystemV psABI文档,以及讨论更新的论坛。

请参阅x86 标记维基以获取到最新版本的直接链接。 (这个答案可能是过时的)。

截至目前, x86-64的当前版本是r252(草案0.99.8 2016年4月) ,目前版本为i386是1.1 (包括AVX512)。 非正式地,需要将符号扩展的窄参数设置为32位 ,因为铿锵依赖于它。 希望未来的ABI修订将记录这一点。

x32 ABI(长模式下的32位指针)是x86-64 ABI文档的一部分。 请参阅第10章:ILP32编程模型。


请注意,特定于处理器的psABI文档是作为对SCO网站上托管的较少更新的System V gABI的补充而设计的。


相关: 在i386和x86-64上,UNIX和Linux系统调用的调用约定是什么,描述了x86-64 SysV(以及i386 Linux和FreeBSD)的系统调用调用约定。

它还总结了整数参数的函数调用约定。 系统调用不采用FP或SSE / AVX向量参数,或者按值来构造,所以函数调用约定更为复杂。


Agner Fog有一个调用约定指南 (涵盖Windows与SysV ,以及32位的各种约定,以及可在任一平台上使用的编写函数的技巧/窍门)。 这是他的优化和微体系结构指南和指令表(如果您关心性能,这是必不可少的阅读)的独立PDF。

维基百科有一个x86调用约定的文章,它描述了各种约定,但是大多数情况下没有足够的细节来将它们用于除简单整数之外的其他任何内容。 (例如,没有描述结构包装规则)。