<HTML>
I'll keep working on it though, because it seems that some routines may return placeholder values if exceptions are masked.<br>
<br>
Gareth aka. Kit<br>
 <br>
<br>
<span style="font-weight: bold;">On Thu 03/05/18 02:35 , "J. Gareth Moreton" gareth@moreton-family.com sent:<br>
</span><blockquote style="BORDER-LEFT: #F5F5F5 2px solid; MARGIN-LEFT: 5px; MARGIN-RIGHT:0px; PADDING-LEFT: 5px; PADDING-RIGHT: 0px"> 
Hi guys,<br>
 
<br>
 
I've been having difficulties disabling floating-point and SSE exceptions. Either the exceptions are still raised, or an exception is raised elsewhere... sometimes within the function, and in one instance, in the WriteLn routine!  Does anyone have any advice as to how to get around this and properly disable the exceptions? I haven't had much luck with SetExceptionMask or Set8087CW so far.<br>
 
<br>
 
Outside of that, manual data flow analysis shows that XMM0 is invariant up until the point that SUBSD is called, which is the operation that raises an exception if XMM0 contains plus or minus infinity.  Logically, being the last operation in the function, if SUBSD doesn't do anything if exceptions are suppressed, then XMM0 will still contain plus or minus infinity and this will be the return value; unusual for a function that returns x where -1 < x < 1, but considering infinity is an abnormal value to pass, this is sort of permissible, I think.<br>

 
 <br>
 
Gareth<br>
 
<br>
 
...<br>

</blockquote></HTML>