OSDN Git Service

* config/fpu-387.h (set_fpu): Use __builtin_ia32_stmxcsr and
authoruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 5 Sep 2012 21:01:30 +0000 (21:01 +0000)
committeruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 5 Sep 2012 21:01:30 +0000 (21:01 +0000)
__builtin_ia32_ldmxcsr intrinsics.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_7-branch@190995 138bc75d-0d04-0410-961f-82ee72b054a4

libgfortran/ChangeLog
libgfortran/config/fpu-387.h

index f1646f5..af17e45 100644 (file)
@@ -1,3 +1,8 @@
+2012-09-05  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/fpu-387.h (set_fpu): Use __builtin_ia32_stmxcsr and
+       __builtin_ia32_ldmxcsr intrinsics.
+
 2012-06-14  Release Manager
 
        * GCC 4.7.1 released.
index 8bf55b2..0e87aab 100644 (file)
@@ -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);
     }
 }