blob: 437e145bf1824957cfd160eab44828aca2ffee1f [file] [log] [blame]
yuezonghe824eb0c2024-06-27 02:32:26 -07001/* Highly optimized version for x86-64.
2 Copyright (C) 1999, 2000, 2002, 2003, 2005 Free Software Foundation, Inc.
3 This file is part of the GNU C Library.
4 Based on i686 version contributed by Ulrich Drepper
5 <drepper@cygnus.com>, 1999.
6
7 The GNU C Library is free software; you can redistribute it and/or
8 modify it under the terms of the GNU Lesser General Public
9 License as published by the Free Software Foundation; either
10 version 2.1 of the License, or (at your option) any later version.
11
12 The GNU C Library is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 Lesser General Public License for more details.
16
17 You should have received a copy of the GNU Lesser General Public
18 License along with the GNU C Library; if not, write to the Free
19 Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
20 02111-1307 USA. */
21
22#include "_glibc_inc.h"
23
24 .text
25ENTRY (BP_SYM (strcmp))
26L(oop): movb (%rdi), %al
27 cmpb (%rsi), %al
28 jne L(neq)
29 incq %rdi
30 incq %rsi
31 testb %al, %al
32 jnz L(oop)
33
34 xorl %eax, %eax
35 ret
36
37L(neq): movl $1, %eax
38 movl $-1, %ecx
39 cmovbl %ecx, %eax
40 ret
41END (BP_SYM (strcmp))
42
43libc_hidden_def(strcmp)
44#ifndef __UCLIBC_HAS_LOCALE__
45strong_alias(strcmp,strcoll)
46libc_hidden_def(strcoll)
47#endif