【发布时间】:2019-09-02 02:20:08
【问题描述】:
我们可以告诉 gcc 特定函数不需要通过函数属性存储/恢复一些被调用者保存寄存器吗?
对于一个文件,我们可以通过-fcall-used-REGS 告诉它,但是文件中的所有功能都会受到影响。
我制作了一个汇编代码,其中存储了一些被调用者保存寄存器(例如 x86_64 上的 r12),并希望从 asm 代码中调用一些 C 函数。被调用函数不需要存储/恢复被调用者保存寄存器,因为 asm 代码存储/恢复它们,所以保存被调用者保存寄存器只是开销(被调用函数足够小,所以 pro/epilogue 代码的开销很大)。
【问题讨论】: