80bit拡張精度浮動小数点

……に意味があるかといいますと、ほとんど無いのですが、FPUの能力のうち80%しか使えないというのは、非常に閉塞感があるのです。ですから使えるようにしました。
http://panathenaia.halfmoon.jp/alang/x87extended.7z
中身は典型的な、ほとんどのコードが全体の数%にも満たないコードを走らせるためにある有様です。こういうことをするからCPUがいくら速くなっても体感で速くならないのです。途中コントロールワードの計算をミスってて単精度しか出ずにえらく時間かかりました。こんなことをしなくてもMSの処理系が80bit拡張精度をサポートさえしていれば、HugsGHCもCLDoubleが80bitになって幸せだったに違いありません。
全部インラインアセンブラでやろうとして気概が続かなかったため必要なとこだけnasm、また一部ほとんどdoubleに逃げています。実はGHCiのgccHugs用のVC++がともにsprintfのLfをサポートしてくれていないため、80bitで計算したところで表示は倍精度でしかなく今のとこ意味はほとんどありません。
追加。Hugs, GHC, GHCi全部対応した。