[fpc-devel] Broken frac functionin FPC3.1.1 / Windows x86_64

J. Gareth Moreton gareth at moreton-family.com
Thu May 3 04:55:42 CEST 2018


 Tests complete! It turns out that I was using SetExceptionMask wrong and
subtracting rather than adding exInvalidOp.

 When exceptions are disabled, this new Frac function returns NaN when you
pass in plus or minus infinity.  This is consistent with the specification
as listed in Chapter 11, Section 11.5.2.1 of the Intel® 64 and IA-32
Architectures Software Developer's Manual which dicates that if the cause
is "Addition of opposite signed infinities or subtraction of like-signed
infinities" (the last line in the procedure is SUBSD that effectively
performs "x - Int(x)"), the result is to "Return the QNaN floating-point
Indefinite".

 Gareth aka. Kit
 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-devel/attachments/20180503/b655975b/attachment.html>


More information about the fpc-devel mailing list