|
@@ -1443,9 +1443,15 @@ end;
|
|
|
if (hx < $00100000) then { x < 2**-1022 }
|
|
|
begin
|
|
|
if (((hx and $7fffffff) or longint(lx))=0) then
|
|
|
- exit(-two54/zero); { log(+-0)=-inf }
|
|
|
+ begin
|
|
|
+ float_raise(float_flag_divbyzero);
|
|
|
+ exit(-two54/zero); { log(+-0)=-inf }
|
|
|
+ end;
|
|
|
if (hx<0) then
|
|
|
- exit((d-d)/zero); { log(-#) = NaN }
|
|
|
+ begin
|
|
|
+ float_raise(float_flag_invalid);
|
|
|
+ exit((d-d)/zero); { log(-#) = NaN }
|
|
|
+ end;
|
|
|
dec(k, 54); d := d * two54; { subnormal number, scale up x }
|
|
|
hx := float64high(d);
|
|
|
end;
|