我相信我了解linux x86-64 ABI如何使用寄存器和堆栈将参数传递给函数(参见previous ABI discussion).我感到困惑的是,在一个函数调用中,是否/应该保留哪些寄存器.也就是说,哪些寄存器被保证不会被 destruct ?
我相信我了解linux x86-64 ABI如何使用寄存器和堆栈将参数传递给函数(参见previous ABI discussion).我感到困惑的是,在一个函数调用中,是否/应该保留哪些寄存器.也就是说,哪些寄存器被保证不会被 destruct ?
以下是文件[PDF Link]中寄存器及其使用的完整表格:
r12
、r13
、r14
、r15
、rbx
、rsp
、rbp
是被调用方保存的寄存器——它们在"跨函数调用保留"列中有一个"是".