/*
Copyright (c) 2014, Intel Corporation
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

    * Redistributions of source code must retain the above copyright notice,
    * this list of conditions and the following disclaimer.

    * Redistributions in binary form must reproduce the above copyright notice,
    * this list of conditions and the following disclaimer in the documentation
    * and/or other materials provided with the distribution.

    * Neither the name of Intel Corporation nor the names of its contributors
    * may be used to endorse or promote products derived from this software
    * without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/

#ifndef USE_AS_STRCAT

# ifndef STRCPY
#  define STRCPY	strcpy
# endif

# ifndef L
#  define L(label)	.L##label
# endif

# ifndef cfi_startproc
#  define cfi_startproc	.cfi_startproc
# endif

# ifndef cfi_endproc
#  define cfi_endproc	.cfi_endproc
# endif

# ifndef ENTRY
#  define ENTRY(name)	\
	.type name, @function;	\
	.globl name;	\
	.p2align 4;	\
name:	\
	cfi_startproc
# endif

# ifndef END
#  define END(name)	\
	cfi_endproc;	\
	.size name, .-name
# endif

#endif

#define JMPTBL(I, B)	I - B
#define BRANCH_TO_JMPTBL_ENTRY(TABLE, INDEX, SCALE)	\
	lea	TABLE(%rip), %r11;	\
	movslq	(%r11, INDEX, SCALE), %rcx;	\
	lea	(%r11, %rcx), %rcx;	\
	jmp	*%rcx

#ifndef USE_AS_STRCAT

# define RETURN ret

.text
ENTRY (STRCPY)
# ifdef USE_AS_STRNCPY
	mov	%rdx, %r8
	test	%r8, %r8
	jz	L(ExitZero)
# endif
	mov	%rsi, %rcx
# ifndef USE_AS_STPCPY
	mov	%rdi, %rax      /* save result */
# endif

#endif
	and	$63, %rcx
	cmp	$32, %rcx
	jbe	L(SourceStringAlignmentLess32)

	and	$-16, %rsi
	and	$15, %rcx
	pxor	%xmm0, %xmm0
	pxor	%xmm1, %xmm1

	pcmpeqb	(%rsi), %xmm1
	pmovmskb %xmm1, %rdx
	shr	%cl, %rdx
#ifdef USE_AS_STRNCPY
# if defined USE_AS_STPCPY || defined USE_AS_STRCAT
	mov	$16, %r10
	sub	%rcx, %r10
	cmp	%r10, %r8
# else
	mov	$17, %r10
	sub	%rcx, %r10
	cmp	%r10, %r8
# endif
	jbe	L(CopyFrom1To16BytesTailCase2OrCase3)
#endif
	test	%rdx, %rdx
	jnz	L(CopyFrom1To16BytesTail)

	pcmpeqb	16(%rsi), %xmm0
	pmovmskb %xmm0, %rdx
#ifdef USE_AS_STRNCPY
	add	$16, %r10
	cmp	%r10, %r8
	jbe	L(CopyFrom1To32BytesCase2OrCase3)
#endif
	test	%rdx, %rdx
	jnz	L(CopyFrom1To32Bytes)

	movdqu	(%rsi, %rcx), %xmm1   /* copy 16 bytes */
	movdqu	%xmm1, (%rdi)

/* If source adress alignment != destination adress alignment */
	.p2align 4
L(Unalign16Both):
	sub	%rcx, %rdi
#ifdef USE_AS_STRNCPY
	add	%rcx, %r8
#endif
	mov	$16, %rcx
	movdqa	(%rsi, %rcx), %xmm1
	movaps	16(%rsi, %rcx), %xmm2
	movdqu	%xmm1, (%rdi, %rcx)
	pcmpeqb	%xmm2, %xmm0
	pmovmskb %xmm0, %rdx
	add	$16, %rcx
#ifdef USE_AS_STRNCPY
	sub	$48, %r8
	jbe	L(CopyFrom1To16BytesCase2OrCase3)
#endif
	test	%rdx, %rdx
#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT
	jnz	L(CopyFrom1To16BytesUnalignedXmm2)
#else
	jnz	L(CopyFrom1To16Bytes)
#endif

	movaps	16(%rsi, %rcx), %xmm3
	movdqu	%xmm2, (%rdi, %rcx)
	pcmpeqb	%xmm3, %xmm0
	pmovmskb %xmm0, %rdx
	add	$16, %rcx
#ifdef USE_AS_STRNCPY
	sub	$16, %r8
	jbe	L(CopyFrom1To16BytesCase2OrCase3)
#endif
	test	%rdx, %rdx
#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT
	jnz	L(CopyFrom1To16BytesUnalignedXmm3)
#else
	jnz	L(CopyFrom1To16Bytes)
#endif

	movaps	16(%rsi, %rcx), %xmm4
	movdqu	%xmm3, (%rdi, %rcx)
	pcmpeqb	%xmm4, %xmm0
	pmovmskb %xmm0, %rdx
	add	$16, %rcx
#ifdef USE_AS_STRNCPY
	sub	$16, %r8
	jbe	L(CopyFrom1To16BytesCase2OrCase3)
#endif
	test	%rdx, %rdx
#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT
	jnz	L(CopyFrom1To16BytesUnalignedXmm4)
#else
	jnz	L(CopyFrom1To16Bytes)
#endif

	movaps	16(%rsi, %rcx), %xmm1
	movdqu	%xmm4, (%rdi, %rcx)
	pcmpeqb	%xmm1, %xmm0
	pmovmskb %xmm0, %rdx
	add	$16, %rcx
#ifdef USE_AS_STRNCPY
	sub	$16, %r8
	jbe	L(CopyFrom1To16BytesCase2OrCase3)
#endif
	test	%rdx, %rdx
#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT
	jnz	L(CopyFrom1To16BytesUnalignedXmm1)
#else
	jnz	L(CopyFrom1To16Bytes)
#endif

	movaps	16(%rsi, %rcx), %xmm2
	movdqu	%xmm1, (%rdi, %rcx)
	pcmpeqb	%xmm2, %xmm0
	pmovmskb %xmm0, %rdx
	add	$16, %rcx
#ifdef USE_AS_STRNCPY
	sub	$16, %r8
	jbe	L(CopyFrom1To16BytesCase2OrCase3)
#endif
	test	%rdx, %rdx
#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT
	jnz	L(CopyFrom1To16BytesUnalignedXmm2)
#else
	jnz	L(CopyFrom1To16Bytes)
#endif

	movaps	16(%rsi, %rcx), %xmm3
	movdqu	%xmm2, (%rdi, %rcx)
	pcmpeqb	%xmm3, %xmm0
	pmovmskb %xmm0, %rdx
	add	$16, %rcx
#ifdef USE_AS_STRNCPY
	sub	$16, %r8
	jbe	L(CopyFrom1To16BytesCase2OrCase3)
#endif
	test	%rdx, %rdx
#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT
	jnz	L(CopyFrom1To16BytesUnalignedXmm3)
#else
	jnz	L(CopyFrom1To16Bytes)
#endif

	movdqu	%xmm3, (%rdi, %rcx)
	mov	%rsi, %rdx
	lea	16(%rsi, %rcx), %rsi
	and	$-0x40, %rsi
	sub	%rsi, %rdx
	sub	%rdx, %rdi
#ifdef USE_AS_STRNCPY
	lea	128(%r8, %rdx), %r8
#endif
L(Unaligned64Loop):
	movaps	(%rsi), %xmm2
	movaps	%xmm2, %xmm4
	movaps	16(%rsi), %xmm5
	movaps	32(%rsi), %xmm3
	movaps	%xmm3, %xmm6
	movaps	48(%rsi), %xmm7
	pminub	%xmm5, %xmm2
	pminub	%xmm7, %xmm3
	pminub	%xmm2, %xmm3
	pcmpeqb	%xmm0, %xmm3
	pmovmskb %xmm3, %rdx
#ifdef USE_AS_STRNCPY
	sub	$64, %r8
	jbe	L(UnalignedLeaveCase2OrCase3)
#endif
	test	%rdx, %rdx
	jnz	L(Unaligned64Leave)

L(Unaligned64Loop_start):
	add	$64, %rdi
	add	$64, %rsi
	movdqu	%xmm4, -64(%rdi)
	movaps	(%rsi), %xmm2
	movdqa	%xmm2, %xmm4
	movdqu	%xmm5, -48(%rdi)
	movaps	16(%rsi), %xmm5
	pminub	%xmm5, %xmm2
	movaps	32(%rsi), %xmm3
	movdqu	%xmm6, -32(%rdi)
	movaps	%xmm3, %xmm6
	movdqu	%xmm7, -16(%rdi)
	movaps	48(%rsi), %xmm7
	pminub	%xmm7, %xmm3
	pminub	%xmm2, %xmm3
	pcmpeqb	%xmm0, %xmm3
	pmovmskb %xmm3, %rdx
#ifdef USE_AS_STRNCPY
	sub	$64, %r8
	jbe	L(UnalignedLeaveCase2OrCase3)
#endif
	test	%rdx, %rdx
	jz	L(Unaligned64Loop_start)

L(Unaligned64Leave):
	pxor	%xmm1, %xmm1

	pcmpeqb	%xmm4, %xmm0
	pcmpeqb	%xmm5, %xmm1
	pmovmskb %xmm0, %rdx
	pmovmskb %xmm1, %rcx
	test	%rdx, %rdx
	jnz	L(CopyFrom1To16BytesUnaligned_0)
	test	%rcx, %rcx
	jnz	L(CopyFrom1To16BytesUnaligned_16)

	pcmpeqb	%xmm6, %xmm0
	pcmpeqb	%xmm7, %xmm1
	pmovmskb %xmm0, %rdx
	pmovmskb %xmm1, %rcx
	test	%rdx, %rdx
	jnz	L(CopyFrom1To16BytesUnaligned_32)

	bsf	%rcx, %rdx
	movdqu	%xmm4, (%rdi)
	movdqu	%xmm5, 16(%rdi)
	movdqu	%xmm6, 32(%rdi)
#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT
# ifdef USE_AS_STPCPY
	lea	48(%rdi, %rdx), %rax
# endif
	movdqu	%xmm7, 48(%rdi)
	add	$15, %r8
	sub	%rdx, %r8
	lea	49(%rdi, %rdx), %rdi
	jmp	L(StrncpyFillTailWithZero)
#else
	add	$48, %rsi
	add	$48, %rdi
	BRANCH_TO_JMPTBL_ENTRY (L(ExitTable), %rdx, 4)
#endif

/* If source adress alignment == destination adress alignment */

L(SourceStringAlignmentLess32):
	pxor	%xmm0, %xmm0
	movdqu	(%rsi), %xmm1
	movdqu	16(%rsi), %xmm2
	pcmpeqb	%xmm1, %xmm0
	pmovmskb %xmm0, %rdx

#ifdef USE_AS_STRNCPY
# if defined USE_AS_STPCPY || defined USE_AS_STRCAT
	cmp	$16, %r8
# else
	cmp	$17, %r8
# endif
	jbe	L(CopyFrom1To16BytesTail1Case2OrCase3)
#endif
	test	%rdx, %rdx
	jnz	L(CopyFrom1To16BytesTail1)

	pcmpeqb	%xmm2, %xmm0
	movdqu	%xmm1, (%rdi)
	pmovmskb %xmm0, %rdx

#ifdef USE_AS_STRNCPY
# if defined USE_AS_STPCPY || defined USE_AS_STRCAT
	cmp	$32, %r8
# else
	cmp	$33, %r8
# endif
	jbe	L(CopyFrom1To32Bytes1Case2OrCase3)
#endif
	test	%rdx, %rdx
	jnz	L(CopyFrom1To32Bytes1)

	and	$15, %rcx
	and	$-16, %rsi

	jmp	L(Unalign16Both)

/*------End of main part with loops---------------------*/

/* Case1 */

#if (!defined USE_AS_STRNCPY) || (defined USE_AS_STRCAT)
	.p2align 4
L(CopyFrom1To16Bytes):
	add	%rcx, %rdi
	add	%rcx, %rsi
	bsf	%rdx, %rdx
	BRANCH_TO_JMPTBL_ENTRY (L(ExitTable), %rdx, 4)
#endif
	.p2align 4
L(CopyFrom1To16BytesTail):
	add	%rcx, %rsi
	bsf	%rdx, %rdx
	BRANCH_TO_JMPTBL_ENTRY (L(ExitTable), %rdx, 4)

	.p2align 4
L(CopyFrom1To32Bytes1):
	add	$16, %rsi
	add	$16, %rdi
#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT
	sub	$16, %r8
#endif
L(CopyFrom1To16BytesTail1):
	bsf	%rdx, %rdx
	BRANCH_TO_JMPTBL_ENTRY (L(ExitTable), %rdx, 4)

	.p2align 4
L(CopyFrom1To32Bytes):
	bsf	%rdx, %rdx
	add	%rcx, %rsi
	add	$16, %rdx
	sub	%rcx, %rdx
	BRANCH_TO_JMPTBL_ENTRY (L(ExitTable), %rdx, 4)

	.p2align 4
L(CopyFrom1To16BytesUnaligned_0):
	bsf	%rdx, %rdx
#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT
# ifdef USE_AS_STPCPY
	lea	(%rdi, %rdx), %rax
# endif
	movdqu	%xmm4, (%rdi)
	add	$63, %r8
	sub	%rdx, %r8
	lea	1(%rdi, %rdx), %rdi
	jmp	L(StrncpyFillTailWithZero)
#else
	BRANCH_TO_JMPTBL_ENTRY (L(ExitTable), %rdx, 4)
#endif

	.p2align 4
L(CopyFrom1To16BytesUnaligned_16):
	bsf	%rcx, %rdx
	movdqu	%xmm4, (%rdi)
#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT
# ifdef USE_AS_STPCPY
	lea	16(%rdi, %rdx), %rax
# endif
	movdqu	%xmm5, 16(%rdi)
	add	$47, %r8
	sub	%rdx, %r8
	lea	17(%rdi, %rdx), %rdi
	jmp	L(StrncpyFillTailWithZero)
#else
	add	$16, %rsi
	add	$16, %rdi
	BRANCH_TO_JMPTBL_ENTRY (L(ExitTable), %rdx, 4)
#endif

	.p2align 4
L(CopyFrom1To16BytesUnaligned_32):
	bsf	%rdx, %rdx
	movdqu	%xmm4, (%rdi)
	movdqu	%xmm5, 16(%rdi)
#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT
# ifdef USE_AS_STPCPY
	lea	32(%rdi, %rdx), %rax
# endif
	movdqu	%xmm6, 32(%rdi)
	add	$31, %r8
	sub	%rdx, %r8
	lea	33(%rdi, %rdx), %rdi
	jmp	L(StrncpyFillTailWithZero)
#else
	add	$32, %rsi
	add	$32, %rdi
	BRANCH_TO_JMPTBL_ENTRY (L(ExitTable), %rdx, 4)
#endif

#ifdef USE_AS_STRNCPY
# ifndef USE_AS_STRCAT 
	.p2align 4
L(CopyFrom1To16BytesUnalignedXmm6):
	movdqu	%xmm6, (%rdi, %rcx)
	jmp	L(CopyFrom1To16BytesXmmExit)

	.p2align 4
L(CopyFrom1To16BytesUnalignedXmm5):
	movdqu	%xmm5, (%rdi, %rcx)
	jmp	L(CopyFrom1To16BytesXmmExit)

	.p2align 4
L(CopyFrom1To16BytesUnalignedXmm4):
	movdqu	%xmm4, (%rdi, %rcx)
	jmp	L(CopyFrom1To16BytesXmmExit)

	.p2align 4
L(CopyFrom1To16BytesUnalignedXmm3):
	movdqu	%xmm3, (%rdi, %rcx)
	jmp	L(CopyFrom1To16BytesXmmExit)

	.p2align 4
L(CopyFrom1To16BytesUnalignedXmm1):
	movdqu	%xmm1, (%rdi, %rcx)
	jmp	L(CopyFrom1To16BytesXmmExit)
# endif

	.p2align 4
L(CopyFrom1To16BytesExit):
	BRANCH_TO_JMPTBL_ENTRY (L(ExitTable), %rdx, 4)

/* Case2 */

	.p2align 4
L(CopyFrom1To16BytesCase2):
	add	$16, %r8
	add	%rcx, %rdi
	add	%rcx, %rsi
	bsf	%rdx, %rdx
	cmp	%r8, %rdx
	jb	L(CopyFrom1To16BytesExit)
	BRANCH_TO_JMPTBL_ENTRY (L(ExitStrncpyTable), %r8, 4)

	.p2align 4
L(CopyFrom1To32BytesCase2):
	add	%rcx, %rsi
	bsf	%rdx, %rdx
	add	$16, %rdx
	sub	%rcx, %rdx
	cmp	%r8, %rdx
	jb	L(CopyFrom1To16BytesExit)
	BRANCH_TO_JMPTBL_ENTRY (L(ExitStrncpyTable), %r8, 4)

L(CopyFrom1To16BytesTailCase2):
	add	%rcx, %rsi
	bsf	%rdx, %rdx
	cmp	%r8, %rdx
	jb	L(CopyFrom1To16BytesExit)
	BRANCH_TO_JMPTBL_ENTRY (L(ExitStrncpyTable), %r8, 4)

L(CopyFrom1To16BytesTail1Case2):
	bsf	%rdx, %rdx
	cmp	%r8, %rdx
	jb	L(CopyFrom1To16BytesExit)
	BRANCH_TO_JMPTBL_ENTRY (L(ExitStrncpyTable), %r8, 4)

/* Case2 or Case3,  Case3 */

	.p2align 4
L(CopyFrom1To16BytesCase2OrCase3):
	test	%rdx, %rdx
	jnz	L(CopyFrom1To16BytesCase2)
L(CopyFrom1To16BytesCase3):
	add	$16, %r8
	add	%rcx, %rdi
	add	%rcx, %rsi
	BRANCH_TO_JMPTBL_ENTRY (L(ExitStrncpyTable), %r8, 4)

	.p2align 4
L(CopyFrom1To32BytesCase2OrCase3):
	test	%rdx, %rdx
	jnz	L(CopyFrom1To32BytesCase2)
	add	%rcx, %rsi
	BRANCH_TO_JMPTBL_ENTRY (L(ExitStrncpyTable), %r8, 4)

	.p2align 4
L(CopyFrom1To16BytesTailCase2OrCase3):
	test	%rdx, %rdx
	jnz	L(CopyFrom1To16BytesTailCase2)
	add	%rcx, %rsi
	BRANCH_TO_JMPTBL_ENTRY (L(ExitStrncpyTable), %r8, 4)

	.p2align 4
L(CopyFrom1To32Bytes1Case2OrCase3):
	add	$16, %rdi
	add	$16, %rsi
	sub	$16, %r8
L(CopyFrom1To16BytesTail1Case2OrCase3):
	test	%rdx, %rdx
	jnz	L(CopyFrom1To16BytesTail1Case2)
	BRANCH_TO_JMPTBL_ENTRY (L(ExitStrncpyTable), %r8, 4)

#endif

/*------------End labels regarding with copying 1-16 bytes--and 1-32 bytes----*/

	.p2align 4
L(Exit1):
	mov	%dh, (%rdi)
#ifdef USE_AS_STPCPY
	lea	(%rdi), %rax
#endif
#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT
	sub	$1, %r8
	lea	1(%rdi), %rdi
	jnz	L(StrncpyFillTailWithZero)
#endif
	RETURN

	.p2align 4
L(Exit2):
	mov	(%rsi), %dx
	mov	%dx, (%rdi)
#ifdef USE_AS_STPCPY
	lea	1(%rdi), %rax
#endif
#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT
	sub	$2, %r8
	lea	2(%rdi), %rdi
	jnz	L(StrncpyFillTailWithZero)
#endif
	RETURN

	.p2align 4
L(Exit3):
	mov	(%rsi), %cx
	mov	%cx, (%rdi)
	mov	%dh, 2(%rdi)
#ifdef USE_AS_STPCPY
	lea	2(%rdi), %rax
#endif
#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT
	sub	$3, %r8
	lea	3(%rdi), %rdi
	jnz	L(StrncpyFillTailWithZero)
#endif
	RETURN

	.p2align 4
L(Exit4):
	mov	(%rsi), %edx
	mov	%edx, (%rdi)
#ifdef USE_AS_STPCPY
	lea	3(%rdi), %rax
#endif
#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT
	sub	$4, %r8
	lea	4(%rdi), %rdi
	jnz	L(StrncpyFillTailWithZero)
#endif
	RETURN

	.p2align 4
L(Exit5):
	mov	(%rsi), %ecx
	mov	%dh, 4(%rdi)
	mov	%ecx, (%rdi)
#ifdef USE_AS_STPCPY
	lea	4(%rdi), %rax
#endif
#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT
	sub	$5, %r8
	lea	5(%rdi), %rdi
	jnz	L(StrncpyFillTailWithZero)
#endif
	RETURN

	.p2align 4
L(Exit6):
	mov	(%rsi), %ecx
	mov	4(%rsi), %dx
	mov	%ecx, (%rdi)
	mov	%dx, 4(%rdi)
#ifdef USE_AS_STPCPY
	lea	5(%rdi), %rax
#endif
#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT
	sub	$6, %r8
	lea	6(%rdi), %rdi
	jnz	L(StrncpyFillTailWithZero)
#endif
	RETURN

	.p2align 4
L(Exit7):
	mov	(%rsi), %ecx
	mov	3(%rsi), %edx
	mov	%ecx, (%rdi)
	mov	%edx, 3(%rdi)
#ifdef USE_AS_STPCPY
	lea	6(%rdi), %rax
#endif
#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT
	sub	$7, %r8
	lea	7(%rdi), %rdi
	jnz	L(StrncpyFillTailWithZero)
#endif
	RETURN

	.p2align 4
L(Exit8):
	mov	(%rsi), %rdx
	mov	%rdx, (%rdi)
#ifdef USE_AS_STPCPY
	lea	7(%rdi), %rax
#endif
#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT
	sub	$8, %r8
	lea	8(%rdi), %rdi
	jnz	L(StrncpyFillTailWithZero)
#endif
	RETURN

	.p2align 4
L(Exit9):
	mov	(%rsi), %rcx
	mov	%dh, 8(%rdi)
	mov	%rcx, (%rdi)
#ifdef USE_AS_STPCPY
	lea	8(%rdi), %rax
#endif
#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT
	sub	$9, %r8
	lea	9(%rdi), %rdi
	jnz	L(StrncpyFillTailWithZero)
#endif
	RETURN

	.p2align 4
L(Exit10):
	mov	(%rsi), %rcx
	mov	8(%rsi), %dx
	mov	%rcx, (%rdi)
	mov	%dx, 8(%rdi)
#ifdef USE_AS_STPCPY
	lea	9(%rdi), %rax
#endif
#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT
	sub	$10, %r8
	lea	10(%rdi), %rdi
	jnz	L(StrncpyFillTailWithZero)
#endif
	RETURN

	.p2align 4
L(Exit11):
	mov	(%rsi), %rcx
	mov	7(%rsi), %edx
	mov	%rcx, (%rdi)
	mov	%edx, 7(%rdi)
#ifdef USE_AS_STPCPY
	lea	10(%rdi), %rax
#endif
#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT
	sub	$11, %r8
	lea	11(%rdi), %rdi
	jnz	L(StrncpyFillTailWithZero)
#endif
	RETURN

	.p2align 4
L(Exit12):
	mov	(%rsi), %rcx
	mov	8(%rsi), %edx
	mov	%rcx, (%rdi)
	mov	%edx, 8(%rdi)
#ifdef USE_AS_STPCPY
	lea	11(%rdi), %rax
#endif
#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT
	sub	$12, %r8
	lea	12(%rdi), %rdi
	jnz	L(StrncpyFillTailWithZero)
#endif
	RETURN

	.p2align 4
L(Exit13):
	mov	(%rsi), %rcx
	mov	5(%rsi), %rdx
	mov	%rcx, (%rdi)
	mov	%rdx, 5(%rdi)
#ifdef USE_AS_STPCPY
	lea	12(%rdi), %rax
#endif
#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT
	sub	$13, %r8
	lea	13(%rdi), %rdi
	jnz	L(StrncpyFillTailWithZero)
#endif
	RETURN

	.p2align 4
L(Exit14):
	mov	(%rsi), %rcx
	mov	6(%rsi), %rdx
	mov	%rcx, (%rdi)
	mov	%rdx, 6(%rdi)
#ifdef USE_AS_STPCPY
	lea	13(%rdi), %rax
#endif
#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT
	sub	$14, %r8
	lea	14(%rdi), %rdi
	jnz	L(StrncpyFillTailWithZero)
#endif
	RETURN

	.p2align 4
L(Exit15):
	mov	(%rsi), %rcx
	mov	7(%rsi), %rdx
	mov	%rcx, (%rdi)
	mov	%rdx, 7(%rdi)
#ifdef USE_AS_STPCPY
	lea	14(%rdi), %rax
#endif
#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT
	sub	$15, %r8
	lea	15(%rdi), %rdi
	jnz	L(StrncpyFillTailWithZero)
#endif
	RETURN

	.p2align 4
L(Exit16):
	movdqu	(%rsi), %xmm0
	movdqu	%xmm0, (%rdi)
#ifdef USE_AS_STPCPY
	lea	15(%rdi), %rax
#endif
#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT
	sub	$16, %r8
	lea	16(%rdi), %rdi
	jnz	L(StrncpyFillTailWithZero)
#endif
	RETURN

	.p2align 4
L(Exit17):
	movdqu	(%rsi), %xmm0
	movdqu	%xmm0, (%rdi)
	mov	%dh, 16(%rdi)
#ifdef USE_AS_STPCPY
	lea	16(%rdi), %rax
#endif
#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT
	sub	$17, %r8
	lea	17(%rdi), %rdi
	jnz	L(StrncpyFillTailWithZero)
#endif
	RETURN

	.p2align 4
L(Exit18):
	movdqu	(%rsi), %xmm0
	mov	16(%rsi), %cx
	movdqu	%xmm0, (%rdi)
	mov	%cx, 16(%rdi)
#ifdef USE_AS_STPCPY
	lea	17(%rdi), %rax
#endif
#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT
	sub	$18, %r8
	lea	18(%rdi), %rdi
	jnz	L(StrncpyFillTailWithZero)
#endif
	RETURN

	.p2align 4
L(Exit19):
	movdqu	(%rsi), %xmm0
	mov	15(%rsi), %ecx
	movdqu	%xmm0, (%rdi)
	mov	%ecx, 15(%rdi)
#ifdef USE_AS_STPCPY
	lea	18(%rdi), %rax
#endif
#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT
	sub	$19, %r8
	lea	19(%rdi), %rdi
	jnz	L(StrncpyFillTailWithZero)
#endif
	RETURN

	.p2align 4
L(Exit20):
	movdqu	(%rsi), %xmm0
	mov	16(%rsi), %ecx
	movdqu	%xmm0, (%rdi)
	mov	%ecx, 16(%rdi)
#ifdef USE_AS_STPCPY
	lea	19(%rdi), %rax
#endif
#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT
	sub	$20, %r8
	lea	20(%rdi), %rdi
	jnz	L(StrncpyFillTailWithZero)
#endif
	RETURN

	.p2align 4
L(Exit21):
	movdqu	(%rsi), %xmm0
	mov	16(%rsi), %ecx
	movdqu	%xmm0, (%rdi)
	mov	%ecx, 16(%rdi)
	mov	%dh, 20(%rdi)
#ifdef USE_AS_STPCPY
	lea	20(%rdi), %rax
#endif
#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT
	sub	$21, %r8
	lea	21(%rdi), %rdi
	jnz	L(StrncpyFillTailWithZero)
#endif
	RETURN

	.p2align 4
L(Exit22):
	movdqu	(%rsi), %xmm0
	mov	14(%rsi), %rcx
	movdqu	%xmm0, (%rdi)
	mov	%rcx, 14(%rdi)
#ifdef USE_AS_STPCPY
	lea	21(%rdi), %rax
#endif
#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT
	sub	$22, %r8
	lea	22(%rdi), %rdi
	jnz	L(StrncpyFillTailWithZero)
#endif
	RETURN

	.p2align 4
L(Exit23):
	movdqu	(%rsi), %xmm0
	mov	15(%rsi), %rcx
	movdqu	%xmm0, (%rdi)
	mov	%rcx, 15(%rdi)
#ifdef USE_AS_STPCPY
	lea	22(%rdi), %rax
#endif
#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT
	sub	$23, %r8
	lea	23(%rdi), %rdi
	jnz	L(StrncpyFillTailWithZero)
#endif
	RETURN

	.p2align 4
L(Exit24):
	movdqu	(%rsi), %xmm0
	mov	16(%rsi), %rcx
	movdqu	%xmm0, (%rdi)
	mov	%rcx, 16(%rdi)
#ifdef USE_AS_STPCPY
	lea	23(%rdi), %rax
#endif
#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT
	sub	$24, %r8
	lea	24(%rdi), %rdi
	jnz	L(StrncpyFillTailWithZero)
#endif
	RETURN

	.p2align 4
L(Exit25):
	movdqu	(%rsi), %xmm0
	mov	16(%rsi), %rcx
	movdqu	%xmm0, (%rdi)
	mov	%rcx, 16(%rdi)
	mov	%dh, 24(%rdi)
#ifdef USE_AS_STPCPY
	lea	24(%rdi), %rax
#endif
#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT
	sub	$25, %r8
	lea	25(%rdi), %rdi
	jnz	L(StrncpyFillTailWithZero)
#endif
	RETURN

	.p2align 4
L(Exit26):
	movdqu	(%rsi), %xmm0
	mov	16(%rsi), %rdx
	mov	24(%rsi), %cx
	movdqu	%xmm0, (%rdi)
	mov	%rdx, 16(%rdi)
	mov	%cx, 24(%rdi)
#ifdef USE_AS_STPCPY
	lea	25(%rdi), %rax
#endif
#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT
	sub	$26, %r8
	lea	26(%rdi), %rdi
	jnz	L(StrncpyFillTailWithZero)
#endif
	RETURN

	.p2align 4
L(Exit27):
	movdqu	(%rsi), %xmm0
	mov	16(%rsi), %rdx
	mov	23(%rsi), %ecx
	movdqu	%xmm0, (%rdi)
	mov	%rdx, 16(%rdi)
	mov	%ecx, 23(%rdi)
#ifdef USE_AS_STPCPY
	lea	26(%rdi), %rax
#endif
#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT
	sub	$27, %r8
	lea	27(%rdi), %rdi
	jnz	L(StrncpyFillTailWithZero)
#endif
	RETURN

	.p2align 4
L(Exit28):
	movdqu	(%rsi), %xmm0
	mov	16(%rsi), %rdx
	mov	24(%rsi), %ecx
	movdqu	%xmm0, (%rdi)
	mov	%rdx, 16(%rdi)
	mov	%ecx, 24(%rdi)
#ifdef USE_AS_STPCPY
	lea	27(%rdi), %rax
#endif
#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT
	sub	$28, %r8
	lea	28(%rdi), %rdi
	jnz	L(StrncpyFillTailWithZero)
#endif
	RETURN

	.p2align 4
L(Exit29):
	movdqu	(%rsi), %xmm0
	movdqu	13(%rsi), %xmm2
	movdqu	%xmm0, (%rdi)
	movdqu	%xmm2, 13(%rdi)
#ifdef USE_AS_STPCPY
	lea	28(%rdi), %rax
#endif
#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT
	sub	$29, %r8
	lea	29(%rdi), %rdi
	jnz	L(StrncpyFillTailWithZero)
#endif
	RETURN

	.p2align 4
L(Exit30):
	movdqu	(%rsi), %xmm0
	movdqu	14(%rsi), %xmm2
	movdqu	%xmm0, (%rdi)
	movdqu	%xmm2, 14(%rdi)
#ifdef USE_AS_STPCPY
	lea	29(%rdi), %rax
#endif
#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT
	sub	$30, %r8
	lea	30(%rdi), %rdi
	jnz	L(StrncpyFillTailWithZero)
#endif
	RETURN

	.p2align 4
L(Exit31):
	movdqu	(%rsi), %xmm0
	movdqu	15(%rsi), %xmm2
	movdqu	%xmm0, (%rdi)
	movdqu	%xmm2, 15(%rdi)
#ifdef USE_AS_STPCPY
	lea	30(%rdi), %rax
#endif
#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT
	sub	$31, %r8
	lea	31(%rdi), %rdi
	jnz	L(StrncpyFillTailWithZero)
#endif
	RETURN

	.p2align 4
L(Exit32):
	movdqu	(%rsi), %xmm0
	movdqu	16(%rsi), %xmm2
	movdqu	%xmm0, (%rdi)
	movdqu	%xmm2, 16(%rdi)
#ifdef USE_AS_STPCPY
	lea	31(%rdi), %rax
#endif
#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT
	sub	$32, %r8
	lea	32(%rdi), %rdi
	jnz	L(StrncpyFillTailWithZero)
#endif
	RETURN

#ifdef USE_AS_STRNCPY

	.p2align 4
L(StrncpyExit0):
#ifdef USE_AS_STPCPY
	mov	%rdi, %rax
#endif
#ifdef USE_AS_STRCAT
	xor	%ch, %ch
	movb	%ch, (%rdi)
#endif
	RETURN

	.p2align 4
L(StrncpyExit1):
	mov	(%rsi), %dl
	mov	%dl, (%rdi)
#ifdef USE_AS_STPCPY
	lea	1(%rdi), %rax
#endif
#ifdef USE_AS_STRCAT
	xor	%ch, %ch
	movb	%ch, 1(%rdi)
#endif
	RETURN

	.p2align 4
L(StrncpyExit2):
	mov	(%rsi), %dx
	mov	%dx, (%rdi)
#ifdef USE_AS_STPCPY
	lea	2(%rdi), %rax
#endif
#ifdef USE_AS_STRCAT
	xor	%ch, %ch
	movb	%ch, 2(%rdi)
#endif
	RETURN

	.p2align 4
L(StrncpyExit3):
	mov	(%rsi), %cx
	mov	2(%rsi), %dl
	mov	%cx, (%rdi)
	mov	%dl, 2(%rdi)
#ifdef USE_AS_STPCPY
	lea	3(%rdi), %rax
#endif
#ifdef USE_AS_STRCAT
	xor	%ch, %ch
	movb	%ch, 3(%rdi)
#endif
	RETURN

	.p2align 4
L(StrncpyExit4):
	mov	(%rsi), %edx
	mov	%edx, (%rdi)
#ifdef USE_AS_STPCPY
	lea	4(%rdi), %rax
#endif
#ifdef USE_AS_STRCAT
	xor	%ch, %ch
	movb	%ch, 4(%rdi)
#endif
	RETURN

	.p2align 4
L(StrncpyExit5):
	mov	(%rsi), %ecx
	mov	4(%rsi), %dl
	mov	%ecx, (%rdi)
	mov	%dl, 4(%rdi)
#ifdef USE_AS_STPCPY
	lea	5(%rdi), %rax
#endif
#ifdef USE_AS_STRCAT
	xor	%ch, %ch
	movb	%ch, 5(%rdi)
#endif
	RETURN

	.p2align 4
L(StrncpyExit6):
	mov	(%rsi), %ecx
	mov	4(%rsi), %dx
	mov	%ecx, (%rdi)
	mov	%dx, 4(%rdi)
#ifdef USE_AS_STPCPY
	lea	6(%rdi), %rax
#endif
#ifdef USE_AS_STRCAT
	xor	%ch, %ch
	movb	%ch, 6(%rdi)
#endif
	RETURN

	.p2align 4
L(StrncpyExit7):
	mov	(%rsi), %ecx
	mov	3(%rsi), %edx
	mov	%ecx, (%rdi)
	mov	%edx, 3(%rdi)
#ifdef USE_AS_STPCPY
	lea	7(%rdi), %rax
#endif
#ifdef USE_AS_STRCAT
	xor	%ch, %ch
	movb	%ch, 7(%rdi)
#endif
	RETURN

	.p2align 4
L(StrncpyExit8):
	mov	(%rsi), %rdx
	mov	%rdx, (%rdi)
#ifdef USE_AS_STPCPY
	lea	8(%rdi), %rax
#endif
#ifdef USE_AS_STRCAT
	xor	%ch, %ch
	movb	%ch, 8(%rdi)
#endif
	RETURN

	.p2align 4
L(StrncpyExit9):
	mov	(%rsi), %rcx
	mov	8(%rsi), %dl
	mov	%rcx, (%rdi)
	mov	%dl, 8(%rdi)
#ifdef USE_AS_STPCPY
	lea	9(%rdi), %rax
#endif
#ifdef USE_AS_STRCAT
	xor	%ch, %ch
	movb	%ch, 9(%rdi)
#endif
	RETURN

	.p2align 4
L(StrncpyExit10):
	mov	(%rsi), %rcx
	mov	8(%rsi), %dx
	mov	%rcx, (%rdi)
	mov	%dx, 8(%rdi)
#ifdef USE_AS_STPCPY
	lea	10(%rdi), %rax
#endif
#ifdef USE_AS_STRCAT
	xor	%ch, %ch
	movb	%ch, 10(%rdi)
#endif
	RETURN

	.p2align 4
L(StrncpyExit11):
	mov	(%rsi), %rcx
	mov	7(%rsi), %edx
	mov	%rcx, (%rdi)
	mov	%edx, 7(%rdi)
#ifdef USE_AS_STPCPY
	lea	11(%rdi), %rax
#endif
#ifdef USE_AS_STRCAT
	xor	%ch, %ch
	movb	%ch, 11(%rdi)
#endif
	RETURN

	.p2align 4
L(StrncpyExit12):
	mov	(%rsi), %rcx
	mov	8(%rsi), %edx
	mov	%rcx, (%rdi)
	mov	%edx, 8(%rdi)
#ifdef USE_AS_STPCPY
	lea	12(%rdi), %rax
#endif
#ifdef USE_AS_STRCAT
	xor	%ch, %ch
	movb	%ch, 12(%rdi)
#endif
	RETURN

	.p2align 4
L(StrncpyExit13):
	mov	(%rsi), %rcx
	mov	5(%rsi), %rdx
	mov	%rcx, (%rdi)
	mov	%rdx, 5(%rdi)
#ifdef USE_AS_STPCPY
	lea	13(%rdi), %rax
#endif
#ifdef USE_AS_STRCAT
	xor	%ch, %ch
	movb	%ch, 13(%rdi)
#endif
	RETURN

	.p2align 4
L(StrncpyExit14):
	mov	(%rsi), %rcx
	mov	6(%rsi), %rdx
	mov	%rcx, (%rdi)
	mov	%rdx, 6(%rdi)
#ifdef USE_AS_STPCPY
	lea	14(%rdi), %rax
#endif
#ifdef USE_AS_STRCAT
	xor	%ch, %ch
	movb	%ch, 14(%rdi)
#endif
	RETURN

	.p2align 4
L(StrncpyExit15):
	mov	(%rsi), %rcx
	mov	7(%rsi), %rdx
	mov	%rcx, (%rdi)
	mov	%rdx, 7(%rdi)
#ifdef USE_AS_STPCPY
	lea	15(%rdi), %rax
#endif
#ifdef USE_AS_STRCAT
	xor	%ch, %ch
	movb	%ch, 15(%rdi)
#endif
	RETURN

	.p2align 4
L(StrncpyExit16):
	movdqu	(%rsi), %xmm0
	movdqu	%xmm0, (%rdi)
#ifdef USE_AS_STPCPY
	lea	16(%rdi), %rax
#endif
#ifdef USE_AS_STRCAT
	xor	%ch, %ch
	movb	%ch, 16(%rdi)
#endif
	RETURN

	.p2align 4
L(StrncpyExit17):
	movdqu	(%rsi), %xmm0
	mov	16(%rsi), %cl
	movdqu	%xmm0, (%rdi)
	mov	%cl, 16(%rdi)
#ifdef USE_AS_STPCPY
	lea	17(%rdi), %rax
#endif
#ifdef USE_AS_STRCAT
	xor	%ch, %ch
	movb	%ch, 17(%rdi)
#endif
	RETURN

	.p2align 4
L(StrncpyExit18):
	movdqu	(%rsi), %xmm0
	mov	16(%rsi), %cx
	movdqu	%xmm0, (%rdi)
	mov	%cx, 16(%rdi)
#ifdef USE_AS_STPCPY
	lea	18(%rdi), %rax
#endif
#ifdef USE_AS_STRCAT
	xor	%ch, %ch
	movb	%ch, 18(%rdi)
#endif
	RETURN

	.p2align 4
L(StrncpyExit19):
	movdqu	(%rsi), %xmm0
	mov	15(%rsi), %ecx
	movdqu	%xmm0, (%rdi)
	mov	%ecx, 15(%rdi)
#ifdef USE_AS_STPCPY
	lea	19(%rdi), %rax
#endif
#ifdef USE_AS_STRCAT
	xor	%ch, %ch
	movb	%ch, 19(%rdi)
#endif
	RETURN

	.p2align 4
L(StrncpyExit20):
	movdqu	(%rsi), %xmm0
	mov	16(%rsi), %ecx
	movdqu	%xmm0, (%rdi)
	mov	%ecx, 16(%rdi)
#ifdef USE_AS_STPCPY
	lea	20(%rdi), %rax
#endif
#ifdef USE_AS_STRCAT
	xor	%ch, %ch
	movb	%ch, 20(%rdi)
#endif
	RETURN

	.p2align 4
L(StrncpyExit21):
	movdqu	(%rsi), %xmm0
	mov	16(%rsi), %ecx
	mov	20(%rsi), %dl
	movdqu	%xmm0, (%rdi)
	mov	%ecx, 16(%rdi)
	mov	%dl, 20(%rdi)
#ifdef USE_AS_STPCPY
	lea	21(%rdi), %rax
#endif
#ifdef USE_AS_STRCAT
	xor	%ch, %ch
	movb	%ch, 21(%rdi)
#endif
	RETURN

	.p2align 4
L(StrncpyExit22):
	movdqu	(%rsi), %xmm0
	mov	14(%rsi), %rcx
	movdqu	%xmm0, (%rdi)
	mov	%rcx, 14(%rdi)
#ifdef USE_AS_STPCPY
	lea	22(%rdi), %rax
#endif
#ifdef USE_AS_STRCAT
	xor	%ch, %ch
	movb	%ch, 22(%rdi)
#endif
	RETURN

	.p2align 4
L(StrncpyExit23):
	movdqu	(%rsi), %xmm0
	mov	15(%rsi), %rcx
	movdqu	%xmm0, (%rdi)
	mov	%rcx, 15(%rdi)
#ifdef USE_AS_STPCPY
	lea	23(%rdi), %rax
#endif
#ifdef USE_AS_STRCAT
	xor	%ch, %ch
	movb	%ch, 23(%rdi)
#endif
	RETURN

	.p2align 4
L(StrncpyExit24):
	movdqu	(%rsi), %xmm0
	mov	16(%rsi), %rcx
	movdqu	%xmm0, (%rdi)
	mov	%rcx, 16(%rdi)
#ifdef USE_AS_STPCPY
	lea	24(%rdi), %rax
#endif
#ifdef USE_AS_STRCAT
	xor	%ch, %ch
	movb	%ch, 24(%rdi)
#endif
	RETURN

	.p2align 4
L(StrncpyExit25):
	movdqu	(%rsi), %xmm0
	mov	16(%rsi), %rdx
	mov	24(%rsi), %cl
	movdqu	%xmm0, (%rdi)
	mov	%rdx, 16(%rdi)
	mov	%cl, 24(%rdi)
#ifdef USE_AS_STPCPY
	lea	25(%rdi), %rax
#endif
#ifdef USE_AS_STRCAT
	xor	%ch, %ch
	movb	%ch, 25(%rdi)
#endif
	RETURN

	.p2align 4
L(StrncpyExit26):
	movdqu	(%rsi), %xmm0
	mov	16(%rsi), %rdx
	mov	24(%rsi), %cx
	movdqu	%xmm0, (%rdi)
	mov	%rdx, 16(%rdi)
	mov	%cx, 24(%rdi)
#ifdef USE_AS_STPCPY
	lea	26(%rdi), %rax
#endif
#ifdef USE_AS_STRCAT
	xor	%ch, %ch
	movb	%ch, 26(%rdi)
#endif
	RETURN

	.p2align 4
L(StrncpyExit27):
	movdqu	(%rsi), %xmm0
	mov	16(%rsi), %rdx
	mov	23(%rsi), %ecx
	movdqu	%xmm0, (%rdi)
	mov	%rdx, 16(%rdi)
	mov	%ecx, 23(%rdi)
#ifdef USE_AS_STPCPY
	lea	27(%rdi), %rax
#endif
#ifdef USE_AS_STRCAT
	xor	%ch, %ch
	movb	%ch, 27(%rdi)
#endif
	RETURN

	.p2align 4
L(StrncpyExit28):
	movdqu	(%rsi), %xmm0
	mov	16(%rsi), %rdx
	mov	24(%rsi), %ecx
	movdqu	%xmm0, (%rdi)
	mov	%rdx, 16(%rdi)
	mov	%ecx, 24(%rdi)
#ifdef USE_AS_STPCPY
	lea	28(%rdi), %rax
#endif
#ifdef USE_AS_STRCAT
	xor	%ch, %ch
	movb	%ch, 28(%rdi)
#endif
	RETURN

	.p2align 4
L(StrncpyExit29):
	movdqu	(%rsi), %xmm0
	movdqu	13(%rsi), %xmm2
	movdqu	%xmm0, (%rdi)
	movdqu	%xmm2, 13(%rdi)
#ifdef USE_AS_STPCPY
	lea	29(%rdi), %rax
#endif
#ifdef USE_AS_STRCAT
	xor	%ch, %ch
	movb	%ch, 29(%rdi)
#endif
	RETURN

	.p2align 4
L(StrncpyExit30):
	movdqu	(%rsi), %xmm0
	movdqu	14(%rsi), %xmm2
	movdqu	%xmm0, (%rdi)
	movdqu	%xmm2, 14(%rdi)
#ifdef USE_AS_STPCPY
	lea	30(%rdi), %rax
#endif
#ifdef USE_AS_STRCAT
	xor	%ch, %ch
	movb	%ch, 30(%rdi)
#endif
	RETURN

	.p2align 4
L(StrncpyExit31):
	movdqu	(%rsi), %xmm0
	movdqu	15(%rsi), %xmm2
	movdqu	%xmm0, (%rdi)
	movdqu	%xmm2, 15(%rdi)
#ifdef USE_AS_STPCPY
	lea	31(%rdi), %rax
#endif
#ifdef USE_AS_STRCAT
	xor	%ch, %ch
	movb	%ch, 31(%rdi)
#endif
	RETURN

	.p2align 4
L(StrncpyExit32):
	movdqu	(%rsi), %xmm0
	movdqu	16(%rsi), %xmm2
	movdqu	%xmm0, (%rdi)
	movdqu	%xmm2, 16(%rdi)
#ifdef USE_AS_STPCPY
	lea	32(%rdi), %rax
#endif
#ifdef USE_AS_STRCAT
	xor	%ch, %ch
	movb	%ch, 32(%rdi)
#endif
	RETURN

	.p2align 4
L(StrncpyExit33):
	movdqu	(%rsi), %xmm0
	movdqu	16(%rsi), %xmm2
	mov	32(%rsi), %cl
	movdqu	%xmm0, (%rdi)
	movdqu	%xmm2, 16(%rdi)
	mov	%cl, 32(%rdi)
#ifdef USE_AS_STRCAT
	xor	%ch, %ch
	movb	%ch, 33(%rdi)
#endif
	RETURN

#ifndef USE_AS_STRCAT

	.p2align 4
L(Fill0):
	RETURN

	.p2align 4
L(Fill1):
	mov	%dl, (%rdi)
	RETURN

	.p2align 4
L(Fill2):
	mov	%dx, (%rdi)
	RETURN

	.p2align 4
L(Fill3):
	mov	%edx, -1(%rdi)
	RETURN

	.p2align 4
L(Fill4):
	mov	%edx, (%rdi)
	RETURN

	.p2align 4
L(Fill5):
	mov	%edx, (%rdi)
	mov	%dl, 4(%rdi)
	RETURN

	.p2align 4
L(Fill6):
	mov	%edx, (%rdi)
	mov	%dx, 4(%rdi)
	RETURN

	.p2align 4
L(Fill7):
	mov	%rdx, -1(%rdi)
	RETURN

	.p2align 4
L(Fill8):
	mov	%rdx, (%rdi)
	RETURN

	.p2align 4
L(Fill9):
	mov	%rdx, (%rdi)
	mov	%dl, 8(%rdi)
	RETURN

	.p2align 4
L(Fill10):
	mov	%rdx, (%rdi)
	mov	%dx, 8(%rdi)
	RETURN

	.p2align 4
L(Fill11):
	mov	%rdx, (%rdi)
	mov	%edx, 7(%rdi)
	RETURN

	.p2align 4
L(Fill12):
	mov	%rdx, (%rdi)
	mov	%edx, 8(%rdi)
	RETURN

	.p2align 4
L(Fill13):
	mov	%rdx, (%rdi)
	mov	%rdx, 5(%rdi)
	RETURN

	.p2align 4
L(Fill14):
	mov	%rdx, (%rdi)
	mov	%rdx, 6(%rdi)
	RETURN

	.p2align 4
L(Fill15):
	movdqu	%xmm0, -1(%rdi)
	RETURN

	.p2align 4
L(Fill16):
	movdqu	%xmm0, (%rdi)
	RETURN

	.p2align 4
L(CopyFrom1To16BytesUnalignedXmm2):
	movdqu	%xmm2, (%rdi, %rcx)

	.p2align 4
L(CopyFrom1To16BytesXmmExit):
	bsf	%rdx, %rdx
	add	$15, %r8
	add	%rcx, %rdi
#ifdef USE_AS_STPCPY
	lea	(%rdi, %rdx), %rax
#endif
	sub	%rdx, %r8
	lea	1(%rdi, %rdx), %rdi

	.p2align 4
L(StrncpyFillTailWithZero):
	pxor	%xmm0, %xmm0
	xor	%rdx, %rdx
	sub	$16, %r8
	jbe	L(StrncpyFillExit)

	movdqu	%xmm0, (%rdi)
	add	$16, %rdi

	mov	%rdi, %rsi
	and	$0xf, %rsi
	sub	%rsi, %rdi
	add	%rsi, %r8
	sub	$64, %r8
	jb	L(StrncpyFillLess64)

L(StrncpyFillLoopMovdqa):
	movdqa	%xmm0, (%rdi)
	movdqa	%xmm0, 16(%rdi)
	movdqa	%xmm0, 32(%rdi)
	movdqa	%xmm0, 48(%rdi)
	add	$64, %rdi
	sub	$64, %r8
	jae	L(StrncpyFillLoopMovdqa)

L(StrncpyFillLess64):
	add	$32, %r8
	jl	L(StrncpyFillLess32)
	movdqa	%xmm0, (%rdi)
	movdqa	%xmm0, 16(%rdi)
	add	$32, %rdi
	sub	$16, %r8
	jl	L(StrncpyFillExit)
	movdqa	%xmm0, (%rdi)
	add	$16, %rdi
	BRANCH_TO_JMPTBL_ENTRY (L(FillTable), %r8, 4)

L(StrncpyFillLess32):
	add	$16, %r8
	jl	L(StrncpyFillExit)
	movdqa	%xmm0, (%rdi)
	add	$16, %rdi
	BRANCH_TO_JMPTBL_ENTRY (L(FillTable), %r8, 4)

L(StrncpyFillExit):
	add	$16, %r8
	BRANCH_TO_JMPTBL_ENTRY (L(FillTable), %r8, 4)

/* end of ifndef USE_AS_STRCAT */
#endif

	.p2align 4
L(UnalignedLeaveCase2OrCase3):
	test	%rdx, %rdx
	jnz	L(Unaligned64LeaveCase2)
L(Unaligned64LeaveCase3):
	lea	64(%r8), %rcx
	and	$-16, %rcx
	add	$48, %r8
	jl	L(CopyFrom1To16BytesCase3)
	movdqu	%xmm4, (%rdi)
	sub	$16, %r8
	jb	L(CopyFrom1To16BytesCase3)
	movdqu	%xmm5, 16(%rdi)
	sub	$16, %r8
	jb	L(CopyFrom1To16BytesCase3)
	movdqu	%xmm6, 32(%rdi)
	sub	$16, %r8
	jb	L(CopyFrom1To16BytesCase3)
	movdqu	%xmm7, 48(%rdi)
#ifdef USE_AS_STPCPY
	lea	64(%rdi), %rax
#endif
#ifdef USE_AS_STRCAT
	xor	%ch, %ch
	movb	%ch, 64(%rdi)
#endif
	RETURN

	.p2align 4
L(Unaligned64LeaveCase2):
	xor	%rcx, %rcx
	pcmpeqb	%xmm4, %xmm0
	pmovmskb %xmm0, %rdx
	add	$48, %r8
	jle	L(CopyFrom1To16BytesCase2OrCase3)
	test	%rdx, %rdx
#ifndef USE_AS_STRCAT
	jnz	L(CopyFrom1To16BytesUnalignedXmm4)
#else
	jnz	L(CopyFrom1To16Bytes)
#endif
	pcmpeqb	%xmm5, %xmm0
	pmovmskb %xmm0, %rdx
	movdqu	%xmm4, (%rdi)
	add	$16, %rcx
	sub	$16, %r8
	jbe	L(CopyFrom1To16BytesCase2OrCase3)
	test	%rdx, %rdx
#ifndef USE_AS_STRCAT
	jnz	L(CopyFrom1To16BytesUnalignedXmm5)
#else
	jnz	L(CopyFrom1To16Bytes)
#endif

	pcmpeqb	%xmm6, %xmm0
	pmovmskb %xmm0, %rdx
	movdqu	%xmm5, 16(%rdi)
	add	$16, %rcx
	sub	$16, %r8
	jbe	L(CopyFrom1To16BytesCase2OrCase3)
	test	%rdx, %rdx
#ifndef USE_AS_STRCAT
	jnz	L(CopyFrom1To16BytesUnalignedXmm6)
#else
	jnz	L(CopyFrom1To16Bytes)
#endif

	pcmpeqb	%xmm7, %xmm0
	pmovmskb %xmm0, %rdx
	movdqu	%xmm6, 32(%rdi)
	lea	16(%rdi, %rcx), %rdi
	lea	16(%rsi, %rcx), %rsi
	bsf	%rdx, %rdx
	cmp	%r8, %rdx
	jb	L(CopyFrom1To16BytesExit)
	BRANCH_TO_JMPTBL_ENTRY (L(ExitStrncpyTable), %r8, 4)

	.p2align 4
L(ExitZero):
#ifndef USE_AS_STRCAT
	mov	%rdi, %rax
#endif
	RETURN

#endif

#ifndef USE_AS_STRCAT
END (STRCPY)
#else
END (STRCAT)
#endif
	.p2align 4
	.section .rodata
L(ExitTable):
	.int	JMPTBL(L(Exit1), L(ExitTable))
	.int	JMPTBL(L(Exit2), L(ExitTable))
	.int	JMPTBL(L(Exit3), L(ExitTable))
	.int	JMPTBL(L(Exit4), L(ExitTable))
	.int	JMPTBL(L(Exit5), L(ExitTable))
	.int	JMPTBL(L(Exit6), L(ExitTable))
	.int	JMPTBL(L(Exit7), L(ExitTable))
	.int	JMPTBL(L(Exit8), L(ExitTable))
	.int	JMPTBL(L(Exit9), L(ExitTable))
	.int	JMPTBL(L(Exit10), L(ExitTable))
	.int	JMPTBL(L(Exit11), L(ExitTable))
	.int	JMPTBL(L(Exit12), L(ExitTable))
	.int	JMPTBL(L(Exit13), L(ExitTable))
	.int	JMPTBL(L(Exit14), L(ExitTable))
	.int	JMPTBL(L(Exit15), L(ExitTable))
	.int	JMPTBL(L(Exit16), L(ExitTable))
	.int	JMPTBL(L(Exit17), L(ExitTable))
	.int	JMPTBL(L(Exit18), L(ExitTable))
	.int	JMPTBL(L(Exit19), L(ExitTable))
	.int	JMPTBL(L(Exit20), L(ExitTable))
	.int	JMPTBL(L(Exit21), L(ExitTable))
	.int	JMPTBL(L(Exit22), L(ExitTable))
	.int	JMPTBL(L(Exit23), L(ExitTable))
	.int	JMPTBL(L(Exit24), L(ExitTable))
	.int	JMPTBL(L(Exit25), L(ExitTable))
	.int	JMPTBL(L(Exit26), L(ExitTable))
	.int	JMPTBL(L(Exit27), L(ExitTable))
	.int	JMPTBL(L(Exit28), L(ExitTable))
	.int	JMPTBL(L(Exit29), L(ExitTable))
	.int	JMPTBL(L(Exit30), L(ExitTable))
	.int	JMPTBL(L(Exit31), L(ExitTable))
	.int	JMPTBL(L(Exit32), L(ExitTable))
#ifdef USE_AS_STRNCPY
L(ExitStrncpyTable):
	.int	JMPTBL(L(StrncpyExit0), L(ExitStrncpyTable))
	.int	JMPTBL(L(StrncpyExit1), L(ExitStrncpyTable))
	.int	JMPTBL(L(StrncpyExit2), L(ExitStrncpyTable))
	.int	JMPTBL(L(StrncpyExit3), L(ExitStrncpyTable))
	.int	JMPTBL(L(StrncpyExit4), L(ExitStrncpyTable))
	.int	JMPTBL(L(StrncpyExit5), L(ExitStrncpyTable))
	.int	JMPTBL(L(StrncpyExit6), L(ExitStrncpyTable))
	.int	JMPTBL(L(StrncpyExit7), L(ExitStrncpyTable))
	.int	JMPTBL(L(StrncpyExit8), L(ExitStrncpyTable))
	.int	JMPTBL(L(StrncpyExit9), L(ExitStrncpyTable))
	.int	JMPTBL(L(StrncpyExit10), L(ExitStrncpyTable))
	.int	JMPTBL(L(StrncpyExit11), L(ExitStrncpyTable))
	.int	JMPTBL(L(StrncpyExit12), L(ExitStrncpyTable))
	.int	JMPTBL(L(StrncpyExit13), L(ExitStrncpyTable))
	.int	JMPTBL(L(StrncpyExit14), L(ExitStrncpyTable))
	.int	JMPTBL(L(StrncpyExit15), L(ExitStrncpyTable))
	.int	JMPTBL(L(StrncpyExit16), L(ExitStrncpyTable))
	.int	JMPTBL(L(StrncpyExit17), L(ExitStrncpyTable))
	.int	JMPTBL(L(StrncpyExit18), L(ExitStrncpyTable))
	.int	JMPTBL(L(StrncpyExit19), L(ExitStrncpyTable))
	.int	JMPTBL(L(StrncpyExit20), L(ExitStrncpyTable))
	.int	JMPTBL(L(StrncpyExit21), L(ExitStrncpyTable))
	.int	JMPTBL(L(StrncpyExit22), L(ExitStrncpyTable))
	.int	JMPTBL(L(StrncpyExit23), L(ExitStrncpyTable))
	.int	JMPTBL(L(StrncpyExit24), L(ExitStrncpyTable))
	.int	JMPTBL(L(StrncpyExit25), L(ExitStrncpyTable))
	.int	JMPTBL(L(StrncpyExit26), L(ExitStrncpyTable))
	.int	JMPTBL(L(StrncpyExit27), L(ExitStrncpyTable))
	.int	JMPTBL(L(StrncpyExit28), L(ExitStrncpyTable))
	.int	JMPTBL(L(StrncpyExit29), L(ExitStrncpyTable))
	.int	JMPTBL(L(StrncpyExit30), L(ExitStrncpyTable))
	.int	JMPTBL(L(StrncpyExit31), L(ExitStrncpyTable))
	.int	JMPTBL(L(StrncpyExit32), L(ExitStrncpyTable))
	.int	JMPTBL(L(StrncpyExit33), L(ExitStrncpyTable))
# ifndef USE_AS_STRCAT
	.p2align 4
L(FillTable):
	.int	JMPTBL(L(Fill0), L(FillTable))
	.int	JMPTBL(L(Fill1), L(FillTable))
	.int	JMPTBL(L(Fill2), L(FillTable))
	.int	JMPTBL(L(Fill3), L(FillTable))
	.int	JMPTBL(L(Fill4), L(FillTable))
	.int	JMPTBL(L(Fill5), L(FillTable))
	.int	JMPTBL(L(Fill6), L(FillTable))
	.int	JMPTBL(L(Fill7), L(FillTable))
	.int	JMPTBL(L(Fill8), L(FillTable))
	.int	JMPTBL(L(Fill9), L(FillTable))
	.int	JMPTBL(L(Fill10), L(FillTable))
	.int	JMPTBL(L(Fill11), L(FillTable))
	.int	JMPTBL(L(Fill12), L(FillTable))
	.int	JMPTBL(L(Fill13), L(FillTable))
	.int	JMPTBL(L(Fill14), L(FillTable))
	.int	JMPTBL(L(Fill15), L(FillTable))
	.int	JMPTBL(L(Fill16), L(FillTable))
# endif
#endif
