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

_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to