3

GCC の組み込み関数の一部は、浮動小数点値を処理します: http://gcc.gnu.org/onlinedocs/gcc-4.2.4/gcc/Other-Builtins.html

Linux カーネルはデフォルトで浮動小数点演算をサポートしていないため、これらの組み込み GCC 関数を Linux カーネル モジュール内で使用できないということですか?

この効果のために何かをした場合、それらを使用できますか (x86 システムを使用していると仮定して):

kernel_fpu_begin();

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

kernel_fpu_end();
4

1 に答える 1

3

Linux カーネルは、内部で浮動小数点を使用することを許可していません。これは、x86 の浮動小数点は、保存/復元にコストがかかる特殊なレジスタ スタックを使用するためです。非整数が必要な (非常に) 少数の場所では、固定小数点 (つまり、10 進または 2 進小数点を想定した整数演算) が使用されます。

于 2013-04-05T19:51:15.240 に答える