我的问题非常类似于:GCC: Prohibit use of some registers
但是,我想限制 C 函数中使用的寄存器数量。换句话说,我希望能够使用类似于 clobber 寄存器的指令,但应用于 C 函数级别而不是在内联汇编中。此外,每个函数可能有一组不同的寄存器可供使用,因此它不可能是一个万能的解决方案。
我想到的唯一两种可能的解决方案是:
- 用汇编程序完成所有操作。并不是真正解决我的问题...
- 使用某种指令单独编译每个函数,以便有条件地使用 GCC 中的寄存器。通过单独编译每个函数,我会失去很多潜在的优化,并且会使代码几乎不可读。
由于我尝试用 C 语言完成所有这些工作,预编译器是否可以以任何方式提供帮助?有没有可能的方法来实现我的预期目标?
最佳答案
不,没有。您将需要在函数或汇编语言中使用内联汇编语句。
关于c - 限制 C 中寄存器的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11126597/