こんにちは、小野です。
私こそ問題をちゃんと把握していなかったようで、すみません。
96bitオプションをつけた場合、拡張倍精度の仮数部が
52bit(=doubleの仮数部のビット幅)程度しかない、というの
が問題だったんですね。そうだとすると、MacOSXに載っているgcc4
では、どちらのオプションを付けても仮数部(2)が64bit幅の
$560513589になっていますから、FreeBSD/i386 6.2のgcc
固有の問題ということになりそうですね。
ところで
movabsq されている二つの行はどちらも変数 lc の仮数部
なのでしょうか?
amd64 の sizeof(long double) っていくつなのでしょうか?
ですが、多分そうだと思います。拡張倍精度の指数部のバイアスが
+16383であることを考えると、直後に movl $16384, -32(%rbp)
していますから、この二つのmovabsqは仮数部の代入命令だと
思います。
なお、amd64のsizeof(long double)は16でした。
--
;; So I must go before you see me fall
;; 小野すず@平城京右京五条三坊