2

我的问题非常类似于:GCC: Prohibit use of some registers

但是,我想限制 C 函数中使用的寄存器数量。换句话说,我希望能够像使用clobber 寄存器一样使用指令,但应用在C 函数级别而不是内联汇编中。此外,每个函数可能有一组不同的寄存器可供使用,因此它不是一个万能的解决方案。

我想到的唯一两种可能的解决方案是:

  • 在汇编程序中做所有事情。不是真正解决我的问题...
  • 使用某种指令分别编译每个函数,以便在 GCC 中条件使用寄存器。通过单独编译每个函数,我会失去很多潜在的优化,这会使代码几乎不可读。

由于我试图在 C 中完成所有这些工作,因此预编译器有什么办法可以在这里提供帮助吗?是否有任何可能的方法来实现我的预期目标?

4

1 回答 1

4

不,那里没有。您将需要在函数或汇编语言中使用内联汇编语句。

于 2012-06-20T19:25:08.320 回答