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();
4

1 回答 1

3

Linux 内核不允许在内部使用浮点,因为 x86 上的浮点使用特殊的寄存器堆栈,保存/恢复成本很高。需要非整数的(非常)少数地方使用定点(即,具有假定小数点或二进制点的整数运算)。

于 2013-04-05T19:51:15.240 回答