OSDN Git Service

Fix SSE and YMM state support check logic for -march=native
authorhjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 3 Oct 2012 17:51:22 +0000 (17:51 +0000)
committerhjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 3 Oct 2012 17:51:22 +0000 (17:51 +0000)
Backported from mainline
*  config/i386/driver-i386.c (host_detect_local_cpu): Fix logic
in SSE and YMM state support check for -march=native.

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

gcc/ChangeLog
gcc/config/i386/driver-i386.c

index a470200..2e0338a 100644 (file)
@@ -1,3 +1,11 @@
+2012-10-03  H.J. Lu  <hongjiu.lu@intel.com>
+
+       Backported from mainline
+       2012-10-03  Andrew W. Nosenko <andrew.w.nosenko@gmail.com>
+
+       *  config/i386/driver-i386.c (host_detect_local_cpu): Fix logic
+       in SSE and YMM state support check for -march=native.
+
 2012-10-02  H.J. Lu  <hongjiu.lu@intel.com>
 
        Backported from mainline
index 3e25a72..69128c5 100644 (file)
@@ -474,7 +474,8 @@ const char *host_detect_local_cpu (int argc, const char **argv)
         : "c" (XCR_XFEATURE_ENABLED_MASK));
 
   /* Check if SSE and YMM states are supported.  */
-  if ((eax & (XSTATE_SSE | XSTATE_YMM)) == (XSTATE_SSE | XSTATE_YMM))
+  if (!has_osxsave
+      || (eax & (XSTATE_SSE | XSTATE_YMM)) != (XSTATE_SSE | XSTATE_YMM))
     {
       has_avx = 0;
       has_fma = 0;