summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>2011-05-22 18:53:32 +0000
committeruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>2011-05-22 18:53:32 +0000
commitcef70b8a374be3832dab0ec48ca7cc429c568e4f (patch)
tree9e5fdec048d251da342293835312e65384c5ceea
parent150310174d170cc46009f763dd4cd6964add98e8 (diff)
downloadppe42-gcc-cef70b8a374be3832dab0ec48ca7cc429c568e4f.tar.gz
ppe42-gcc-cef70b8a374be3832dab0ec48ca7cc429c568e4f.zip
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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@174032 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog11
-rw-r--r--gcc/config/i386/cpuid.h1
-rw-r--r--libcpp/ChangeLog6
-rw-r--r--libcpp/lex.c6
4 files changed, 17 insertions, 7 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 943a538bc36..81e2d20fa2d 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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>
diff --git a/gcc/config/i386/cpuid.h b/gcc/config/i386/cpuid.h
index e9d0fab6f39..3c3f47b0030 100644
--- a/gcc/config/i386/cpuid.h
+++ b/gcc/config/i386/cpuid.h
@@ -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)
diff --git a/libcpp/ChangeLog b/libcpp/ChangeLog
index d287d127e80..2630138b6e4 100644
--- a/libcpp/ChangeLog
+++ b/libcpp/ChangeLog
@@ -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.
diff --git a/libcpp/lex.c b/libcpp/lex.c
index 3bf4886b6d2..bbce62ca095 100644
--- a/libcpp/lex.c
+++ b/libcpp/lex.c
@@ -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;
}
OpenPOWER on IntegriCloud