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