将函数参数绑定到特定寄存器

时间:2013-01-08 08:03:06

标签: gcc function-calls

我可以使 gcc 将特定功能( C C ++ )参数放入特定寄存器吗?我想定义一些裸代码使用的函数原型,它利用这个寄存器作为基础。我的意思是类似this,但是朝向函数参数。

1 个答案:

答案 0 :(得分:1)

您不能请求将特定函数参数放在给定的寄存器中。这是因为函数参数传递给函数的方式由您的体系结构的ABI定义。例如,在x86-64上,前6个(整数)参数在寄存器%rdi%rsi%rdx%rcx%r8中传递,和%r9

如您所示,您可以使用local register vars将特定的局部变量分配给寄存器,然后将参数复制到该局部变量中。这应该导致参数被复制到该寄存器中。

那就是说,为什么你甚至想要这个?