On Tuesday, 26 August 2014 at 13:24:11 UTC, Don wrote:
No, it's more subtle. On the original x87, signalling NaNs are triggered for 64 bits loads, but not for 80 bit loads. You have to read the fine print to discover this.
You are right, but it happens for loads from the FP-stack too: «Source operand is an SNaN. Does not occur if the source operand is in double extended-precision floating-point format (FLD m80fp or FLD ST(i)).»
I don't think the behaviour was intentional.
It seems reasonable, you need to load/save NaNs without exceptions if you do a context switch? I don't think the extended format was not meant for "end users".
Anyway, the x87 FP stack is history, even MOVSS is considered legacy by Intel…