我的问题非常类似于:GCC: Prohibit use of some registers
但是,我想限制 C 函数中使用的寄存器数量。换句话说,我希望能够像使用clobber 寄存器一样使用指令,但应用在C 函数级别而不是内联汇编中。此外,每个函数可能有一组不同的寄存器可供使用,因此它不是一个万能的解决方案。
我想到的唯一两种可能的解决方案是:
- 在汇编程序中做所有事情。不是真正解决我的问题...
- 使用某种指令分别编译每个函数,以便在 GCC 中条件使用寄存器。通过单独编译每个函数,我会失去很多潜在的优化,这会使代码几乎不可读。
由于我试图在 C 中完成所有这些工作,因此预编译器有什么办法可以在这里提供帮助吗?是否有任何可能的方法来实现我的预期目标?