]> git.ipfire.org Git - thirdparty/gcc.git/commit
libcpp: replace SSE4.2 helper with an SSSE3 one
authorAlexander Monakov <amonakov@ispras.ru>
Tue, 6 Aug 2024 06:47:23 +0000 (09:47 +0300)
committerAlexander Monakov <amonakov@ispras.ru>
Tue, 20 Aug 2024 11:09:12 +0000 (14:09 +0300)
commit20a5b4824993ae1c99f3b965c5e07bbd2c64b2ce
treea70a1417e98d486c41ba2be23b9da4cbfc2b1b45
parentb8ea13ebf1211714503fd72f25c04376483bfa53
libcpp: replace SSE4.2 helper with an SSSE3 one

Since the characters we are searching for (CR, LF, '\', '?') all have
distinct ASCII codes mod 16, PSHUFB can help match them all at once.

Directly use the new helper if __SSSE3__ is defined. It makes the other
helpers unused, so mark them inline to prevent warnings.

Rewrite and simplify init_vectorized_lexer.

libcpp/ChangeLog:

* config.in: Regenerate.
* configure: Regenerate.
* configure.ac: Check for SSSE3 instead of SSE4.2.
* files.cc (read_file_guts): Bump padding to 64 if HAVE_SSSE3.
* lex.cc (search_line_acc_char): Mark inline, not "unused".
(search_line_sse2): Mark inline.
(search_line_sse42): Replace with...
(search_line_ssse3): ... this new function.  Adjust the use...
(init_vectorized_lexer): ... here.  Simplify.
libcpp/config.in
libcpp/configure
libcpp/configure.ac
libcpp/files.cc
libcpp/lex.cc