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:48:57 +0000 (17:48 +0000)
committerhjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 3 Oct 2012 17:48:57 +0000 (17:48 +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_7-branch@192045 138bc75d-0d04-0410-961f-82ee72b054a4

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

index 2244c50..0ade688 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-03  Alexandre Oliva <aoliva@redhat.com>
 
        PR debug/53135
index a233d3b..7b5e4d7 100644 (file)
@@ -477,7 +477,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_avx2 = 0;