[fpc-devel] MM_MaskInvalidOp in mxcsr

Jonas Maebe jonas.maebe at elis.ugent.be
Sat Sep 4 11:52:57 CEST 2010


On 03 Sep 2010, at 12:05, Markus Beth wrote:

> Is there a reason why MM_MaskInvalidOp is not set in mxcsr in 
> rtl/x86_64/x86_64.inc?

Because on all FPC platforms, the default behaviour is that an invalid floating point operation causes an exception.

> I have a 3rd party application that depends on InvalidOp to be masked 
> out. I want to extend this application with a FPC library. But the 
> initialization code of the library (SysInitFPU) unmasks the InvalidOp 
> exception.

That's this problem: http://bugs.freepascal.org/view.php?id=16263

> I now call "SetSSECSR(GetSSECSR or $0080);" in the initialization 
> section of my main unit

You should use math.SetExceptionMask instead, the above can lead to inconsistent situations.

> to mask out the InvalidOp exception again.
> But I wonder if this could break something (in rtl or internal FPC 
> functions).

No, unless you have code that depends on exceptions being generated for invalid floating point operations.


Jonas




More information about the fpc-devel mailing list