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:
@@ -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.
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user