在寄存器中的64位Linux上传输参数

时间:2013-03-20 13:50:22

标签: linux performance optimization x86-64 cpu-registers

我理解64位Linux允许通过寄存器传递前六个整数函数参数和前八个浮点函数参数。

如果我有七个整数参数要通过,有没有办法让我使用一个未使用的浮点寄存器作为第七个整数,而不牺牲性能?

1 个答案:

答案 0 :(得分:2)

如果您正在编写自己的汇编代码,则可以以任何您想要的方式使用寄存器(好吧,可能不是那么自由,但您可以自由地忽略ABI,sorta)。但是,如果您正在使用符合标准ABI编写的库代码(或系统调用,或者从更高级语言编译的程序的某些部分,或......),则必须遵循相同的限制。构成/使用符合ABI标准的接口的代码部分。