]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
2007-02-09 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
authorhjagasia <hjagasia@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 9 Feb 2007 16:56:45 +0000 (16:56 +0000)
committerhjagasia <hjagasia@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 9 Feb 2007 16:56:45 +0000 (16:56 +0000)
* config/i386/driver-i386.c: Turn on -mtune=native for AMDFAM10.
(bit_SSE4a): New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@121763 138bc75d-0d04-0410-961f-82ee72b054a4

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

index 92903f55449fa6899e0bc4bfe4923bf45a79f8ba..de6a753188f0090fc741e7435d038805cfc98aa6 100644 (file)
@@ -1,3 +1,8 @@
+2007-02-09  Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
+
+        * config/i386/driver-i386.c: Turn on -mtune=native for AMDFAM10.
+        (bit_SSE4a): New.
+
 2007-02-09  Nathan Sidwell  <nathan@codesourcery.com>
            Richard Sandiford  <richard@codesourcery.com>
 
index d623c2c7b104202a4c8935a89eb412b234452372..df43512f775087d7b361946dd68d78ac372e6dae 100644 (file)
@@ -1,5 +1,5 @@
 /* Subroutines for the gcc driver.
-   Copyright (C) 2006 Free Software Foundation, Inc.
+   Copyright (C) 2006, 2007 Free Software Foundation, Inc.
 
 This file is part of GCC.
 
@@ -40,6 +40,7 @@ const char *host_detect_local_cpu (int argc, const char **argv);
 
 #define bit_SSE3 (1 << 0)
 #define bit_SSSE3 (1 << 9)
+#define bit_SSE4a (1 << 6)
 #define bit_CMPXCHG16B (1 << 13)
 
 #define bit_3DNOW (1 << 31)
@@ -68,7 +69,7 @@ const char *host_detect_local_cpu (int argc, const char **argv)
   unsigned int ext_level;
   unsigned char has_mmx = 0, has_3dnow = 0, has_3dnowp = 0, has_sse = 0;
   unsigned char has_sse2 = 0, has_sse3 = 0, has_ssse3 = 0, has_cmov = 0;
-  unsigned char has_longmode = 0, has_cmpxchg8b = 0;
+  unsigned char has_longmode = 0, has_cmpxchg8b = 0, has_sse4a = 0;
   unsigned char is_amd = 0;
   unsigned int family = 0;
   bool arch;
@@ -120,6 +121,7 @@ const char *host_detect_local_cpu (int argc, const char **argv)
       has_3dnow = !!(edx & bit_3DNOW);
       has_3dnowp = !!(edx & bit_3DNOWP);
       has_longmode = !!(edx & bit_LM);
+      has_sse4a = !!(ecx & bit_SSE4a);
     }
 
   is_amd = vendor == *(unsigned int*)"Auth";
@@ -132,6 +134,8 @@ const char *host_detect_local_cpu (int argc, const char **argv)
        processor = PROCESSOR_ATHLON;
       if (has_sse2 || has_longmode)
        processor = PROCESSOR_K8;
+      if (has_sse4a)
+       processor = PROCESSOR_AMDFAM10;
     }
   else
     {
@@ -266,6 +270,9 @@ const char *host_detect_local_cpu (int argc, const char **argv)
     case PROCESSOR_NOCONA:
       cpu = "nocona";
       break;
+    case PROCESSOR_AMDFAM10:
+      cpu = "amdfam10";
+      break;
     case PROCESSOR_GENERIC32:
     case PROCESSOR_GENERIC64:
       cpu = "generic";