my initial analysis was wrong. i got fooled by the asynchronous nature of the exception delivery. the trap already happend on the FLD instruction when we try to load the SNaN from memory.
what sucks is that passing "nan" to strtod() will result in a program crash with the default fcr instead of rejecting the string. so everyone is forced to filter the inputs to strtod() to avoid the crash, or change the fcr and then deal with the nan's and infs. -- cinap