1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-10-30 10:45:40 +03:00

Pretty printing x86-64 SSE4.3 strcmp.

This commit is contained in:
Ulrich Drepper
2010-07-30 12:54:37 -07:00
parent 42e08a5438
commit 66f6765a47
2 changed files with 31 additions and 29 deletions

View File

@@ -1,5 +1,7 @@
2010-07-30 Ulrich Drepper <drepper@redhat.com> 2010-07-30 Ulrich Drepper <drepper@redhat.com>
* sysdeps/x86_64/multiarch/strcmp.S: Pretty printing.
* string/Makefile (strop-tests): Add strcasecmp. * string/Makefile (strop-tests): Add strcasecmp.
* sysdeps/x86_64/Makefile [subdir=string] (sysdep_routines): Add * sysdeps/x86_64/Makefile [subdir=string] (sysdep_routines): Add
strcasecmp_l-nonascii. strcasecmp_l-nonascii.

View File

@@ -1,5 +1,5 @@
/* strcmp with SSE4.2 /* strcmp with SSE4.2
Copyright (C) 2009 Free Software Foundation, Inc. Copyright (C) 2009, 2010 Free Software Foundation, Inc.
Contributed by Intel Corporation. Contributed by Intel Corporation.
This file is part of the GNU C Library. This file is part of the GNU C Library.
@@ -24,7 +24,7 @@
#ifdef USE_AS_STRNCMP #ifdef USE_AS_STRNCMP
/* Since the counter, %r11, is unsigned, we branch to strcmp_exitz /* Since the counter, %r11, is unsigned, we branch to strcmp_exitz
if the new counter > the old one or is 0. */ if the new counter > the old one or is 0. */
#define UPDATE_STRNCMP_COUNTER \ # define UPDATE_STRNCMP_COUNTER \
/* calculate left number to compare */ \ /* calculate left number to compare */ \
lea -16(%rcx, %r11), %r9; \ lea -16(%rcx, %r11), %r9; \
cmp %r9, %r11; \ cmp %r9, %r11; \
@@ -33,23 +33,23 @@
je LABEL(strcmp_exitz_sse4_2); \ je LABEL(strcmp_exitz_sse4_2); \
mov %r9, %r11 mov %r9, %r11
#define STRCMP_SSE42 __strncmp_sse42 # define STRCMP_SSE42 __strncmp_sse42
#define STRCMP_SSSE3 __strncmp_ssse3 # define STRCMP_SSSE3 __strncmp_ssse3
#define STRCMP_SSE2 __strncmp_sse2 # define STRCMP_SSE2 __strncmp_sse2
#define __GI_STRCMP __GI_strncmp # define __GI_STRCMP __GI_strncmp
#else #else
#define UPDATE_STRNCMP_COUNTER # define UPDATE_STRNCMP_COUNTER
#ifndef STRCMP # ifndef STRCMP
#define STRCMP strcmp # define STRCMP strcmp
#define STRCMP_SSE42 __strcmp_sse42 # define STRCMP_SSE42 __strcmp_sse42
#define STRCMP_SSSE3 __strcmp_ssse3 # define STRCMP_SSSE3 __strcmp_ssse3
#define STRCMP_SSE2 __strcmp_sse2 # define STRCMP_SSE2 __strcmp_sse2
#define __GI_STRCMP __GI_strcmp # define __GI_STRCMP __GI_strcmp
#endif # endif
#endif #endif
#ifndef LABEL #ifndef LABEL
#define LABEL(l) L(l) # define LABEL(l) L(l)
#endif #endif
/* Define multiple versions only for the definition in libc. Don't /* Define multiple versions only for the definition in libc. Don't