Commit Graph

137 Commits

Author SHA1 Message Date
Andreas Schwab
1818483b15 Remove use of SSE4.2 functions for strstr on i686
The SSE4.2 have been removed from x86_64 by commit 584b18eb.  This patch
fixes the build on i686, which attempts to use the removed files.
2013-12-18 14:28:30 +10:00
Joseph Myers
3f2e46a494 Remove --disable-versioning. 2013-09-04 15:25:42 +00:00
Andreas Schwab
5d228a436a Fix handling LC_CTYPE nonascii-case fallback in i686 SSE4.2 and SSSE3 strcasecmp/strncasecmp 2013-08-27 12:19:03 +02:00
Ondřej Bílka
c0c3f78afb Fix typos. 2013-08-21 19:48:48 +02:00
Liubov Dmitrieva
46ed103824 i686: Skip SSE4_2 version for strcmp, strncmp, strncase, strcasecmp
if bit_Slow_SSE4_2 is set.
2013-08-21 18:25:08 +04:00
H.J. Lu
1c81621c5b Enable static 32-bit SSE4.2 strcasecmp/strncasecmp 2013-07-02 08:06:04 -07:00
Joseph Myers
568035b787 Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
H.J. Lu
b090e8ea45 Add i686 __libc_ifunc_impl_list 2012-10-11 16:40:02 -07:00
Andreas Jaeger
1afbc875e3 Remove executable permissions checked in by accident 2012-08-15 21:18:44 +02:00
Liubov Dmitrieva
b3f479a85a Fix segmentation fault in strncasecmp for i686
2012-08-15  Liubov Dmitrieva  <liubov.dmitrieva@gmail.com>

	[BZ #14195]
        * sysdeps/i386/i686/multiarch/strcmp-sssse3.S: Fix
        segmentation fault for a case of two empty input strings.
	* string/test-strncasecmp.c (check1): Renamed to...
	(bz12205): ...this.
	(bz14195): Add new testcase for two empty input strings and N > 0.
	(test_main): Call new testcase, adapt for renamed function.
2012-08-15 21:06:55 +02:00
H.J. Lu
f85fa27058 Avoid DWARF definition DIE on ifunc symbols 2012-08-09 16:04:37 -07:00
Andreas Jaeger
d8d1017e5e Fix warnings in wcschr-c.c
Fixes:
In file included from ../sysdeps/i386/i686/multiarch/wcschr-c.c:8:0:
../wcsmbs/wcschr.c:26:1: warning: function declaration isn’t a prototype [-Wstrict-prototypes]
../wcsmbs/wcschr.c:37:1: warning: data definition has no type or storage class [enabled by default]
../wcsmbs/wcschr.c:37:1: warning: type defaults to ‘int’ in declaration of ‘__hidden_ver1’ [enabled by default]
../wcsmbs/wcschr.c:37:1: warning: parameter names (without types) in function declaration [enabled by default]
2012-05-21 22:27:11 +02:00
Carlos O'Donell
1a0994f535 BZ#14059: Fix AVX and FMA4 detection.
Fix AVX and FMA4 detection by following the guidelines
set out by Intel and AMD for detecting these features.
2012-05-17 06:59:28 -07:00
Liubov Dmitrieva
4b43400f6a optimize the following memcpy: sysdeps/i386/i686/multiarch/memcpy-ssse3.S
I've improved the following implementation of memcpy:
"sysdeps/i386/i686/multiarch/memcpy-ssse3.S".

The patch includes some minor style fixes, but the important part is
just using prefetch loops for the case:

DATA_CACHE_SIZE_HALF <= len <  SHARED_CACHE_SIZE_HALF and
src and dst pointers have unequal 16 byte alignments.

This gives from 6% - 50% performance boost on the atom machine, about
24,73% in geometric mean.
2012-03-30 16:45:27 -04:00
Joseph Myers
0bab47b6b2 Fix x86 strcasecmp_l (bug 13786). 2012-02-29 22:37:38 +00:00
Paul Eggert
59ba27a63a Replace FSF snail mail address with URLs. 2012-02-09 23:18:22 +00:00
Joseph Myers
9a1d92541f Consistently use macros for x86 PIC thunks. 2012-02-03 23:22:53 +00:00
Liubov Dmitrieva
c044cf14b0 Fix wrong copying processing for last bytes in x86-32 wcscpy
Wrong copy algorithm for last bytes, not thread safety.
In some particular cases it uses the destination
memory beyond the string end for
16-byte load, puts changes into that part that is relevant
to destination string and writes whole 16-byte chunk into memory.
I have a test case where the memory beyond the string end contains
malloc/free data, that appear corrupted in case free() updates
it in between the 16-byte read and 16-byte write.
2011-12-23 08:50:39 -05:00
Liubov Dmitrieva
2bd779ae3f Fix overrun in strcpy destination buffer in x86-32/SSSE3 version 2011-12-22 14:22:00 -05:00
Ulrich Drepper
1d3e4b618a Optimized wcschr and wcscpy for x86-64 and x86-32 2011-12-17 14:39:23 -05:00
Andreas Schwab
5583a0862c Fix SSSE3/SSE4.2 strcasecmp[_l]/strncasecmp[_l] for non-PIC and -mno-tls-direct-seg-refs 2011-11-16 11:48:10 +01:00
Ulrich Drepper
6abf346582 Add SSE4.2 support for strcasecmp and strncasecmp on x86-32 2011-11-14 18:24:35 -05:00
Ulrich Drepper
76e3966e9e SSSE3 optimized strcasecmp and strncasecmp for x86-32 2011-11-13 09:50:13 -05:00
Ulrich Drepper
e7f4b08ee9 Fix warnings in fallback C code of x86-32 wide memory functions 2011-11-12 00:50:26 -05:00
Ulrich Drepper
fe72eebd67 Remove unnecessary code from x86-32 SSSE3 strncmp 2011-11-08 07:50:20 -05:00
Andreas Schwab
0c92d8a87a Fix some warning nits 2011-10-28 12:02:08 +02:00
Andreas Schwab
b43433460b Move wide char related routines to wcsmbs subdir 2011-10-28 12:01:29 +02:00
Ulrich Drepper
2fa2ae85ca Fix strnlen change 2011-10-23 16:30:40 -04:00
Liubov Dmitrieva
fc2ee42abe Add optimized wcslen and strnlen for x86-32 2011-10-23 15:17:23 -04:00
Michael Zolotukhin
979c70a3b1 Improve x86-32 SSSE3 memcpy 2011-10-23 14:28:26 -04:00
Ulrich Drepper
f17424ed53 Fix WS 2011-10-23 13:35:24 -04:00
Liubov Dmitrieva
95584d3b33 Fix signedness in wcscmp comparison 2011-10-23 13:34:15 -04:00
Liubov Dmitrieva
be13f7bff6 Optimized memcmp and wmemcmp for x86-64 and x86-32 2011-10-15 11:10:08 -04:00
Ulrich Drepper
f9e123204e Fix whitespaces 2011-10-12 11:42:57 -04:00
Liubov Dmitrieva
951fbcec70 Optimized memchr, memrchr, rawmemchr for x86-32 2011-10-12 11:42:04 -04:00
Liubov Dmitrieva
48882a1abe Fix up x86-32 section names for Atom code 2011-09-07 22:28:44 -04:00
Ulrich Drepper
ceaa0c5dc3 Move Atom-optimized code out of the way and together 2011-09-06 21:53:03 -04:00
Ulrich Drepper
b0fc1ff04e Fix whitespaces 2011-09-05 17:12:27 -04:00
Liubov Dmitrieva
693fb94884 Optimized strchr and strrchr with SSE2 on x86-32 2011-09-05 17:11:11 -04:00
Ulrich Drepper
5fc11f0d64 Fix whitespaces 2011-09-05 13:54:51 -04:00
Ulrich Drepper
1b48c53782 Add x86-32 optimized wcscmp 2011-09-05 13:53:27 -04:00
Andreas Schwab
2cae499541 Fix spurious nop at start of __strspn_ia32 2011-08-23 15:53:51 +02:00
Ulrich Drepper
b969a69b2e Fix whitespaces 2011-08-04 15:38:35 -04:00
Liubov Dmitrieva
5fa16e9b01 Improve x86-32 strcat functions with SSE2/SSSE3 2011-08-04 15:33:38 -04:00
Roland McGrath
661607b3dd Quash a warning in strstr-c.c built for static. 2011-07-14 20:47:54 -07:00
H.J. Lu
acb0d739c5 Fix unwind info in 32bit SSE2/SSSE3 strncpy 2011-06-25 01:32:27 -04:00
H.J. Lu
0b1cbaaef5 Optimized st{r,p}{,n}cpy for SSE2/SSSE3 on x86-32 2011-06-24 14:15:32 -04:00
Mike Frysinger
4c559bcdf3 Fix static linking with checking x86/x86-64 memcpy. 2011-04-17 22:20:47 -04:00
Ulrich Drepper
283007197c Undo accidental checkin. 2010-12-14 13:09:28 -05:00
Jakub Jelinek
42acbb92c8 Fix -D_FORTIFY_SOURCE memmove and bcop 2010-12-09 10:38:18 -05:00
H.J. Lu
3a4a2499ec Remove dead code from x86-32 SSSE3 strncmp. 2010-12-01 22:18:31 -05:00
Jakub Jelinek
5e908464b9 Implement accurate fma. 2010-10-13 22:27:03 -04:00
Jakub Jelinek
9ff8d36f27 Correct implementation of fmaf. 2010-10-11 09:27:05 -04:00
Roland McGrath
6d34eb5b45 Add missing i686/multiarch/Makefile bit for shared x86_64 code. 2010-08-27 17:11:38 -07:00
Ulrich Drepper
c96d23fcaa Fixup x86 after x86-64 varshift change. 2010-08-27 12:10:11 -07:00
H.J. Lu
e73015f2d6 Unroll 32bit SSE strlen and handle slow bsf 2010-08-25 10:07:37 -07:00
Richard Henderson
73f27d5e72 Clean up SSE variable shifts 2010-08-24 11:35:01 -07:00
Andreas Schwab
bdaa77bc20 Fix ifunc thunk for strspn on x86 in static libc 2010-08-19 07:42:16 -07:00
Andreas Schwab
b8934257ec Add missing file from last commit. 2010-07-21 08:44:35 -07:00
Andreas Schwab
f6a31e0eb6 Add strcasestr-nonascii to i386 build 2010-07-21 07:26:18 -07:00
H.J. Lu
6cc2b8a6df Fix bugs in x86-32 strcmp-sse4.S and strcmp-ssse3.S 2010-04-15 07:49:30 -07:00
H.J. Lu
a11ec63713 Add x86-32 FMA support 2010-04-14 22:27:59 -07:00
H.J. Lu
b170ff0f8f Fix sysdeps/i386/i686/multiarch/memcmp-ssse3.S 2010-03-18 11:40:46 -07:00
H.J. Lu
dc21aae6c1 Fix unwind info in x86 strcmp-sse4.S 2010-02-26 19:54:50 -08:00
H.J. Lu
3093e0c713 Fix issues in x86 memcpy-ssse3-rep.S 2010-02-24 18:26:30 -08:00
H.J. Lu
a0ac24d98a Fix issues in x86 memcpy-ssse3.S 2010-02-24 18:20:57 -08:00
H.J. Lu
cc50f1a4b4 Fix issues in x86 memset-sse2.S/memset-sse2-rep.S 2010-02-24 18:11:35 -08:00
H.J. Lu
039c8ae6d5 Use CPUID_OFFSET instead of FEATURE_OFFSET 2010-02-18 23:11:21 -08:00
H.J. Lu
020ecba7fc Align x86 memcmp-sse4.S and fix unwind info. 2010-02-17 23:01:55 -08:00
H.J. Lu
c60bce2cdd Fix unwind info in x86 memcmp-ssse3. 2010-02-17 22:35:18 -08:00
H.J. Lu
28be6098c3 Simplify x86 strcmp-sse4 unwind info. 2010-02-17 22:27:41 -08:00
Ulrich Drepper
82abe82ad7 Fix and cleanup unwind info in x86 strcmp-ssse<F3>. 2010-02-17 22:13:55 -08:00
Ulrich Drepper
d22ae6cf50 Remove commented-out code. 2010-02-15 18:47:02 -08:00
Ulrich Drepper
6bb74d9f86 Fix up new x86 string functions. 2010-02-15 13:04:54 -08:00
H.J. Lu
904057bc17 32bit memcmp/strcmp/strncmp optimized for SSSE3/SSS4.2 2010-02-15 11:17:50 -08:00
H.J. Lu
cff0be8849 Support __memmove_ssse3_rep when SHARED isn't defined. 2010-01-19 12:20:57 -08:00
Ulrich Drepper
f9a97ddaff Fix whitespace problems. 2010-01-12 11:28:17 -08:00
H.J. Lu
3af48cbdfa Optimize 32bit memset/memcpy with SSE2/SSSE3. 2010-01-12 11:22:03 -08:00
H.J. Lu
2510d01ddb Define bit_SSE2 and index_SSE2. 2009-12-13 15:23:02 -08:00
Ulrich Drepper
04ef416adc Fix IA-32 strstr in multiarch configuration as well. 2009-09-03 06:44:22 -07:00
H.J. Lu
5a4eb7282e Remove ENABLE_SSSE3_ON_ATOM.
It turns that SSSE3 isn't slow on Atom. The problem is bsf. This patch
removes ENABLE_SSSE3_ON_ATOM.
2009-08-28 14:54:46 -07:00
H.J. Lu
fc1870e6a4 Use PIC only if SHARED is defined.
For ia32, we can avoid PIC in IFUNC functions in static library.
2009-08-08 10:29:29 -07:00
Ulrich Drepper
2d2f482e48 Fix whitespace in last patch. 2009-08-07 10:41:54 -07:00
H.J. Lu
0eca608d05 Add the missing "; \". 2009-08-07 10:40:45 -07:00
Ulrich Drepper
2c709c6f05 Add x86 SSE strlen. 2009-08-04 18:15:02 -07:00
H.J. Lu
02cea47161 Add x86 32-bit SSE4.2 string functions.
This patch adds 32bit SSE4.2 string functions.  It uses -16L instead of
0xfffffffffffffff0L, which works for both 32bit and 64bit long.  Tested
on 32bit Core i7 and Core 2.
2009-08-04 12:13:43 -07:00
H.J. Lu
6f6f1215f6 Support multiarch for i686.
This patch adds multiarch support when configured for i686.  I modified
some x86-64 functions to support 32bit. I will contribute 32bit SSE string
and memory functions later.
2009-07-31 11:53:35 -07:00