===================================================================
@@ -112,7 +112,7 @@
if (options.fpe & GFC_FPE_UNDERFLOW) cw &= ~_FPU_MASK_UM;
if (options.fpe & GFC_FPE_INEXACT) cw &= ~_FPU_MASK_PM;
- asm volatile ("fldcw %0" : : "m" (cw));
+ asm volatile ("%vstmxcsr %0" : "=m" (cw_sse));
if (has_sse())
{
@@ -131,6 +131,6 @@
if (options.fpe & GFC_FPE_UNDERFLOW) cw_sse &= ~(_FPU_MASK_UM << 7);
if (options.fpe & GFC_FPE_INEXACT) cw_sse &= ~(_FPU_MASK_PM << 7);
- __builtin_ia32_ldmxcsr (cw_sse);
+ asm volatile ("%vldmxcsr %0" : : "m" (cw_sse));
}
}