限制 C 中寄存器的使用

问题描述 投票:0回答:1

我的问题非常类似于:GCC:禁止使用某些寄存器

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

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

  • 一切都用汇编程序完成。并不是真正解决我的问题...
  • 使用某种指令单独编译每个函数,以便有条件地使用 GCC 中的寄存器。通过单独编译每个函数,我会失去很多潜在的优化,并且会使代码几乎不可读。

由于我尝试用 C 语言完成所有这些工作,预编译器是否可以以任何方式提供帮助?有没有可能的方法来实现我的预期目标?

c gcc cpu-registers
1个回答
4
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.