トップ 差分 一覧 Farm ソース 検索 ヘルプ PDF RSS ログイン

Diary/2007-8-15

浮動小数の扱い(Binary Hacks #98より)

研究室の後輩の浮動小数を扱うプログラムの挙動が
gccの最適化オプション(-O)の有無で違うというので考えてみたら
ぴたりBinary Hacks #98の通りで、
x86の浮動小数点レジスタの指数部が15bit固定であるのが
原因だった。
最適化オプションの有無によって
一度メモリに値を書くか書かないかの挙動が異なっていて、
これで結果の値も異なっていたよう。
ちなみに、BinaryHacksのpp.369のプログラム、
FreeBSD上で最適化オプションをつけずにコンパイルして実行するとx86でもinfになった。