Fix tolower operation in strcasestr.

This commit is contained in:
Ulrich Drepper 2010-07-30 00:09:07 -07:00
parent 76e6d6bca7
commit fe36dd025e
3 changed files with 7 additions and 2 deletions

View File

@ -1,3 +1,8 @@
2010-07-30 Ulrich Drepper <drepper@redhat.com>
* string/test-strcasestr.c: Test both ends of the range of characters.
* sysdeps/x86_64/multiarch/strstr.c: Fix UCHIGH definition.
2010-07-29 Roland McGrath <roland@redhat.com>
[BZ #11856]

View File

@ -97,7 +97,7 @@ do_test (size_t align1, size_t align2, size_t len1, size_t len2,
char *s1 = (char *) (buf1 + align1);
char *s2 = (char *) (buf2 + align2);
static const char d[] = "1234567890abcdef";
static const char d[] = "1234567890abcxyz";
#define dl (sizeof (d) - 1)
char *ss2 = s2;
for (size_t l = len2; l > 0; l = l > dl ? l - dl : 0)

View File

@ -174,7 +174,7 @@ __m128i_strloadu_tolower (const unsigned char *p, __m128i rangeuc,
__m128i frag = __m128i_strloadu (p);
#define UCLOW 0x4040404040404040ULL
#define UCHIGH 0x5a5a5a5a5a5a5a5aULL
#define UCHIGH 0x5b5b5b5b5b5b5b5bULL
#define LCQWORD 0x2020202020202020ULL
/* Compare if 'Z' > bytes. Inverted way to get a mask for byte <= 'Z'. */
__m128i r2 = _mm_cmpgt_epi8 (_mm_set1_epi64x (UCHIGH), frag);