2 Copyright (C) 2009, 2010 Free Software Foundation, Inc.
3 Contributed by Ulrich Drepper <drepper@redhat.com>.
4 This file is part of the GNU C Library.
6 The GNU C Library is free software; you can redistribute it and/or
7 modify it under the terms of the GNU Lesser General Public
8 License as published by the Free Software Foundation; either
9 version 2.1 of the License, or (at your option) any later version.
11 The GNU C Library is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 Lesser General Public License for more details.
16 You should have received a copy of the GNU Lesser General Public
17 License along with the GNU C Library; if not, write to the Free
18 Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
21 #if defined SHARED && !defined NOT_IN_libc
25 .section .text.sse4.2,"ax",@progbits
26 ENTRY (__strlen_sse42)
42 pcmpistri $0x08, 16(%rdi), %xmm1
45 pcmpistri $0x08, 32(%rdi), %xmm1
48 pcmpistri $0x08, 48(%rdi), %xmm1
52 pcmpistri $0x08, (%rdi), %xmm1
53 jnz L(more64bytes_loop)
54 leaq (%rdi,%rcx), %rax
60 leaq 16(%rdi,%rcx, 1), %rax
66 leaq 32(%rdi,%rcx, 1), %rax
72 leaq 48(%rdi,%rcx, 1), %rax