aboutsummaryrefslogtreecommitdiff
path: root/libcpp/lex.c
diff options
context:
space:
mode:
authorUros Bizjak <uros@gcc.gnu.org>2011-05-22 20:53:32 +0200
committerUros Bizjak <uros@gcc.gnu.org>2011-05-22 20:53:32 +0200
commitef230b38360a3565c7cf88023fc109e3e76e119b (patch)
tree9e5fdec048d251da342293835312e65384c5ceea /libcpp/lex.c
parent7a1db261dec3c7da38f1576a03ec44167649c1af (diff)
downloadgcc-ef230b38360a3565c7cf88023fc109e3e76e119b.zip
gcc-ef230b38360a3565c7cf88023fc109e3e76e119b.tar.gz
gcc-ef230b38360a3565c7cf88023fc109e3e76e119b.tar.bz2
re PR bootstrap/49104 (bootstrap failure on AMD K6-2 with illegal instruction (cmove) in stage2)
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
Diffstat (limited to 'libcpp/lex.c')
-rw-r--r--libcpp/lex.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/libcpp/lex.c b/libcpp/lex.c
index 3bf4886..bbce62c 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;
}