From cef70b8a374be3832dab0ec48ca7cc429c568e4f Mon Sep 17 00:00:00 2001 From: uros Date: Sun, 22 May 2011 18:53:32 +0000 Subject: PR target/49104 * config/i386/cpuid.h (bit_MMXEXT): New define. libcpp/ChangeLog: 2011-05-22 Uros Bizjak 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 --- libcpp/lex.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'libcpp/lex.c') 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; } -- cgit v1.2.1