re PR bootstrap/49104 (bootstrap failure on AMD K6-2 with illegal instruction (cmove...
authorUros Bizjak <uros@gcc.gnu.org>
Sun, 22 May 2011 18:53:32 +0000 (20:53 +0200)
committerUros Bizjak <uros@gcc.gnu.org>
Sun, 22 May 2011 18:53:32 +0000 (20:53 +0200)
PR target/49104
* config/i386/cpuid.h (bit_MMXEXT): New define.

libcpp/ChangeLog:

2011-05-22  Uros Bizjak  <ubizjak@gmail.com>

PR target/49104
* lex.c (init_vectorized_lexer): Do not set "minimum" when __3dNOW_A__
is defined.  Check bit_MMXEXT and bit_CMOV to use search_line_mmx.

From-SVN: r174032

gcc/ChangeLog
gcc/config/i386/cpuid.h
libcpp/ChangeLog
libcpp/lex.c

index 943a538bc36629b01d1c5c7f4e289b7be95123c0..81e2d20fa2d67ff09dfffc9109de3b8a02e713f9 100644 (file)
@@ -1,3 +1,8 @@
+2011-05-22  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/49104
+       * config/i386/cpuid.h (bit_MMXEXT): New define.
+
 2011-05-22  Nick Clifton  <nickc@redhat.com>
 
        * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
@@ -7,8 +12,7 @@
 2011-05-22  Ira Rosen  <ira.rosen@linaro.org>
 
        PR tree-optimization/49087
-       * tree-vect-loop.c (vect_is_slp_reduction): Fail if
-       LHS has no uses.
+       * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
 
 2011-05-21  Jason Merrill  <jason@redhat.com>
 
@@ -45,8 +49,7 @@
        * opt-read.awk: New.  Split out of optc-gen.awk and opth-gen.awk.
        * optc-gen.awk: Move common code to opt-read.awk.
        * opth-gen.awk: Likewise.
-       * Makefile.in (options.c, s-options-h): Update to use
-       opt-read.awk.
+       * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
 
 2011-05-20  Nathan Froyd  <froydnj@codesourcery.com>
 
index e9d0fab6f39ab8d26797f0492f65e58b9f1a3d14..3c3f47b0030dcabba041197d7888ffb515d28f31 100644 (file)
@@ -57,6 +57,7 @@
 #define bit_TBM         (1 << 21)
 
 /* %edx */
+#define bit_MMXEXT     (1 << 22)
 #define bit_LM         (1 << 29)
 #define bit_3DNOWP     (1 << 30)
 #define bit_3DNOW      (1 << 31)
index d287d127e8017999aff5dc3864f190b43b049a31..2630138b6e496167ab623682d0fd1cb7fac4116c 100644 (file)
@@ -1,3 +1,9 @@
+2011-05-22  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/49104
+       * lex.c (init_vectorized_lexer): Do not set "minimum" when __3dNOW_A__
+       is defined.  Check bit_MMXEXT and bit_CMOV to use search_line_mmx.
+
 2011-04-25  Jan Kratochvil  <jan.kratochvil@redhat.com>
 
        * system.h (ENUM_BITFIELD): Remove.
index 3bf4886b6d28c273be03fde83b1384ab67fe4e5a..bbce62ca095a825ecd0a62d5f1aa8f85203e988c 100644 (file)
@@ -294,7 +294,7 @@ static const char repl_chars[4][16] __attribute__((aligned(16))) = {
 /* A version of the fast scanner using MMX vectorized byte compare insns.
 
    This uses the PMOVMSKB instruction which was introduced with "MMX2",
-   which was packaged into SSE1; it is also present in the AMD 3dNOW-A
+   which was packaged into SSE1; it is also present in the AMD MMX
    extension.  Mark the function as using "sse" so that we emit a real
    "emms" instruction, rather than the 3dNOW "femms" instruction.  */
 
@@ -488,7 +488,7 @@ init_vectorized_lexer (void)
   minimum = 3;
 #elif defined(__SSE2__)
   minimum = 2;
-#elif defined(__SSE__) || defined(__3dNOW_A__)
+#elif defined(__SSE__)
   minimum = 1;
 #endif
 
@@ -505,7 +505,7 @@ init_vectorized_lexer (void)
     }
   else if (__get_cpuid (0x80000001, &dummy, &dummy, &dummy, &edx))
     {
-      if (minimum == 1 || edx & bit_3DNOWP)
+      if (minimum == 1 || (edx & (bit_MMXEXT | bit_CMOV)))
        impl = search_line_mmx;
     }