首页 文章

我可以在Linux内核中调用任何GCC内置函数吗?

提问于
浏览
3

GCC的一些内置函数处理浮点值:http://gcc.gnu.org/onlinedocs/gcc-4.2.4/gcc/Other-Builtins.html

由于Linux内核默认不支持浮点运算,这是否意味着我不能在Linux内核模块中使用这些内置的GCC函数?

如果我做了一些这样的事情(假设我在x86系统上),我是否能够使用它们:

kernel_fpu_begin();

float x = 3.14;
x = __builtin_ceil(x);

kernel_fpu_end();

1 回答

  • 3

    Linux内核不允许在内部使用浮点,因为x86上的浮点使用特殊的寄存器堆栈,这对于保存/恢复来说很昂贵 . (非常)少数需要非整数的地方,使用固定点(即具有假设的十进制或二进制点的整数运算) .

相关问题