OSDN Git Service

2004-07-08 Paolo Bonzini <bonzini@gnu.org>
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 8 Jul 2004 15:58:22 +0000 (15:58 +0000)
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 8 Jul 2004 15:58:22 +0000 (15:58 +0000)
            Jakub Jelinek  <jakub@redhat.com>

* config/i386/i386.c (override_options): Enable
SSE prefetches with -mtune, as long as we are
compiling for i686 or higher.  All i686 processors
accept SSE prefetches as NOPS, some i586's don't.

2004-07-08  Jakub Jelinek  <jakub@redhat.com>

* gcc.mist-tests/i386-prefetch.exp (PREFETCH_SSE): Change all
-march=i386 into -march=i686.  Add -march=i686 -mtune=x and
-march=x for pentium3, pentium3m, pentium-m, pentium4m,
prescott and c3-2.
(PREFETCH_3DNOW): Add -march=c3.

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

gcc/ChangeLog
gcc/config/i386/i386.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.misc-tests/i386-prefetch.exp

index b259f42..ec20053 100644 (file)
@@ -1,3 +1,11 @@
+2004-07-08  Paolo Bonzini  <bonzini@gnu.org>
+            Jakub Jelinek  <jakub@redhat.com>
+
+       * config/i386/i386.c (override_options): Enable
+       SSE prefetches with -mtune, as long as we are
+       compiling for i686 or higher.  All i686 processors
+       accept SSE prefetches as NOPS, some i586's don't.
+
 2004-07-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
 
        PR target/10567
index b51586f..b468e1d 100644 (file)
@@ -1306,6 +1306,14 @@ override_options (void)
        ix86_tune = processor_alias_table[i].processor;
        if (TARGET_64BIT && !(processor_alias_table[i].flags & PTA_64BIT))
          error ("CPU you selected does not support x86-64 instruction set");
+
+        /* Intel CPUs have always interpreted SSE prefetch instructions as
+          NOPs; so, we can enable SSE prefetch instructions even when
+          -mtune (rather than -march) points us to a processor that has them.
+          However, the VIA C3 gives a SIGILL, so we only do that for i686 and
+          higher processors.  */
+       if (TARGET_CMOVE && (processor_alias_table[i].flags & PTA_PREFETCH_SSE))
+         x86_prefetch_sse = true;
        break;
       }
   if (i == pta_size)
index d522c8e..827198d 100644 (file)
@@ -1,3 +1,11 @@
+2004-07-08  Jakub Jelinek  <jakub@redhat.com>
+
+       * gcc.mist-tests/i386-prefetch.exp (PREFETCH_SSE): Change all
+       -march=i386 into -march=i686.  Add -march=i686 -mtune=x and
+       -march=x for pentium3, pentium3m, pentium-m, pentium4m,
+       prescott and c3-2.
+       (PREFETCH_3DNOW): Add -march=c3.
+
 2004-07-08  Diego Novillo  <dnovillo@redhat.com>
 
        PR c/16437
index 2290478..25a752a 100644 (file)
@@ -1,4 +1,4 @@
-#   Copyright (C) 2002 Free Software Foundation, Inc.
+#   Copyright (C) 2002, 2004 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -46,16 +46,27 @@ set PREFETCH_NONE [list \
 # instructions as nops.
 
 set PREFETCH_SSE [list \
-       { -march=i386 -mtune=pentium3 } \
-       { -march=i386 -mtune=pentium4 } \
-       { -march=i386 -mtune=athlon } \
-       { -march=i386 -mtune=athlon-4 } \
+       { -march=i686 -mtune=pentium3 } \
+       { -march=i686 -mtune=pentium3m } \
+       { -march=i686 -mtune=pentium-m } \
+       { -march=i686 -mtune=pentium4 } \
+       { -march=i686 -mtune=pentium4m } \
+       { -march=i686 -mtune=prescott } \
+       { -march=i686 -mtune=athlon } \
+       { -march=i686 -mtune=athlon-4 } \
+       { -march=i686 -mtune=c3-2 } \
        { -march=pentium3 } \
-       { -march=pentium4 } ]
+       { -march=pentium3m } \
+       { -march=pentium-m } \
+       { -march=pentium4 } \
+       { -march=pentium4m } \
+       { -march=prescott } \
+       { -march=c3-2 } ]
 
 # Generate 3DNow! prefetch instructions for the following.
 
 set PREFETCH_3DNOW [list \
+       { -march=c3 } \
        { -march=k6-2 } \
        { -march=k6-3 } ]