【发布时间】:2013-03-28 02:23:12
【问题描述】:
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();
【问题讨论】:
-
这些很可能使用 浮点 寄存器。我还担心你会破坏 user floating point 寄存器状态。
-
您可能可以在内核中调用非浮点 GCC 内置函数(例如
__builtin_prefetch...),但您想在内核中使用浮点,这是不可能的。
标签: c linux gcc linux-kernel x86