exp(-∞) @リリースビルド @VC7.1

VC7.1のリリースビルドだとexp(-∞)が無効な値になるようなアセンブリ吐くじゃんか,ぶ〜ぶ〜ぶ〜.

// exp(x)のリリースビルドが吐くコード
// st(0) <- x
fldl2e;
fmulp st(1), st;
fld st(0);
frndint;
fxch st(1);
fsub st, st(1); // x = -∞だとここが(-∞) - (-∞)
f2xm1;
fld1;
faddp st(1),st;
fscale;
fstp st(1);
// st(0) == exp(x)

まー,特異な値じゃなければ至極妥当なコードにゃんだけれど.-∞なんか入れるなバカってことかのー.
VC7.1のCRTの浮動少数演算ってどの規格が基準なんじゃろか?
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_crt_exp.asp