From: Uros Bizjak Date: Wed, 5 Sep 2012 19:49:21 +0000 (+0200) Subject: fpu-387.h (set_fpu): Use __builtin_ia32_stmxcsr and __builtin_ia32_ldmxcsr intrinsics. X-Git-Tag: misc/gccgo-go1_1_2~1023 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=df36cec0ddfe7b86bd79bde1b3c6f43168b70348;p=thirdparty%2Fgcc.git fpu-387.h (set_fpu): Use __builtin_ia32_stmxcsr and __builtin_ia32_ldmxcsr intrinsics. * config/fpu-387.h (set_fpu): Use __builtin_ia32_stmxcsr and __builtin_ia32_ldmxcsr intrinsics. From-SVN: r190992 --- diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog index 9f0ed3ec77ff..65830870d231 100644 --- a/libgfortran/ChangeLog +++ b/libgfortran/ChangeLog @@ -1,3 +1,8 @@ +2012-03-30 Uros Bizjak + + * config/fpu-387.h (set_fpu): Use __builtin_ia32_stmxcsr and + __builtin_ia32_ldmxcsr intrinsics. + 2012-07-25 Andreas Schwab * io/list_read.c (list_formatted_read_scalar): Fix copying real diff --git a/libgfortran/config/fpu-387.h b/libgfortran/config/fpu-387.h index 8bf55b28a618..0e87aab8b9d0 100644 --- a/libgfortran/config/fpu-387.h +++ b/libgfortran/config/fpu-387.h @@ -118,7 +118,7 @@ void set_fpu (void) { unsigned int cw_sse; - asm volatile ("stmxcsr %0" : "=m" (cw_sse)); + cw_sse = __builtin_ia32_stmxcsr (); cw_sse &= 0xffff0000; cw_sse |= (_FPU_MASK_IM | _FPU_MASK_DM | _FPU_MASK_ZM | _FPU_MASK_OM @@ -131,6 +131,6 @@ void set_fpu (void) if (options.fpe & GFC_FPE_UNDERFLOW) cw_sse &= ~(_FPU_MASK_UM << 7); if (options.fpe & GFC_FPE_INEXACT) cw_sse &= ~(_FPU_MASK_PM << 7); - asm volatile ("ldmxcsr %0" : : "m" (cw_sse)); + __builtin_ia32_ldmxcsr (cw_sse); } }