1a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik/* 2a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikCopyright (c) 2014, Intel Corporation 3a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikAll rights reserved. 4a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 5a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikRedistribution and use in source and binary forms, with or without 6a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchikmodification, are permitted provided that the following conditions are met: 7a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 8a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik * Redistributions of source code must retain the above copyright notice, 9a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik * this list of conditions and the following disclaimer. 10a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 11a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik * Redistributions in binary form must reproduce the above copyright notice, 12a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik * this list of conditions and the following disclaimer in the documentation 13a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik * and/or other materials provided with the distribution. 14a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 15a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik * Neither the name of Intel Corporation nor the names of its contributors 16a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik * may be used to endorse or promote products derived from this software 17a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik * without specific prior written permission. 18a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 19a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 20a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 21a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 22a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR 23a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 24a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 25a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 26a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 28a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik*/ 30a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 31a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifndef USE_AS_STRCAT 32a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 33a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik# ifndef STRCPY 34a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik# define STRCPY strcpy 35a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik# endif 36a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 37a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik# ifndef L 38a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik# define L(label) .L##label 39a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik# endif 40a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 41a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik# ifndef cfi_startproc 42a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik# define cfi_startproc .cfi_startproc 43a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik# endif 44a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 45a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik# ifndef cfi_endproc 46a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik# define cfi_endproc .cfi_endproc 47a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik# endif 48a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 49a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik# ifndef ENTRY 50a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik# define ENTRY(name) \ 51a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .type name, @function; \ 52a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .globl name; \ 53a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4; \ 54a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchikname: \ 55a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik cfi_startproc 56a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik# endif 57a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 58a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik# ifndef END 59a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik# define END(name) \ 60a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik cfi_endproc; \ 61a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .size name, .-name 62a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik# endif 63a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 64a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 65a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 66a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#define JMPTBL(I, B) I - B 67a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#define BRANCH_TO_JMPTBL_ENTRY(TABLE, INDEX, SCALE) \ 68a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea TABLE(%rip), %r11; \ 69a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movslq (%r11, INDEX, SCALE), %rcx; \ 70a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea (%r11, %rcx), %rcx; \ 71a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jmp *%rcx 72a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 73a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifndef USE_AS_STRCAT 74a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 75a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik# define RETURN ret 76a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 77a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik.text 78a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikENTRY (STRCPY) 79a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik# ifdef USE_AS_STRNCPY 80a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %rdx, %r8 81a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik test %r8, %r8 82a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jz L(ExitZero) 83a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik# endif 84a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %rsi, %rcx 85a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik# ifndef USE_AS_STPCPY 86a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %rdi, %rax /* save result */ 87a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik# endif 88a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 89a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 90a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik and $63, %rcx 91a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik cmp $32, %rcx 92a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jbe L(SourceStringAlignmentLess32) 93a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 94a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik and $-16, %rsi 95a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik and $15, %rcx 96a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik pxor %xmm0, %xmm0 97a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik pxor %xmm1, %xmm1 98a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 99a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik pcmpeqb (%rsi), %xmm1 100a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik pmovmskb %xmm1, %rdx 101a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik shr %cl, %rdx 102a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STRNCPY 103a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik# if defined USE_AS_STPCPY || defined USE_AS_STRCAT 104a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov $16, %r10 105a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik sub %rcx, %r10 106a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik cmp %r10, %r8 107a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik# else 108a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov $17, %r10 109a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik sub %rcx, %r10 110a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik cmp %r10, %r8 111a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik# endif 112a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jbe L(CopyFrom1To16BytesTailCase2OrCase3) 113a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 114a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik test %rdx, %rdx 115a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jnz L(CopyFrom1To16BytesTail) 116a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 117a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik pcmpeqb 16(%rsi), %xmm0 118a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik pmovmskb %xmm0, %rdx 119a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STRNCPY 120a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik add $16, %r10 121a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik cmp %r10, %r8 122a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jbe L(CopyFrom1To32BytesCase2OrCase3) 123a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 124a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik test %rdx, %rdx 125a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jnz L(CopyFrom1To32Bytes) 126a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 127a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu (%rsi, %rcx), %xmm1 /* copy 16 bytes */ 128a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm1, (%rdi) 129a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 130a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik/* If source adress alignment != destination adress alignment */ 131a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 132a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(Unalign16Both): 133a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik sub %rcx, %rdi 134a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STRNCPY 135a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik add %rcx, %r8 136a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 137a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov $16, %rcx 138a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqa (%rsi, %rcx), %xmm1 139a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movaps 16(%rsi, %rcx), %xmm2 140a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm1, (%rdi, %rcx) 141a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik pcmpeqb %xmm2, %xmm0 142a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik pmovmskb %xmm0, %rdx 143a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik add $16, %rcx 144a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STRNCPY 145a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik sub $48, %r8 146a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jbe L(CopyFrom1To16BytesCase2OrCase3) 147a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 148a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik test %rdx, %rdx 149a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT 150a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jnz L(CopyFrom1To16BytesUnalignedXmm2) 151a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#else 152a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jnz L(CopyFrom1To16Bytes) 153a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 154a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 155a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movaps 16(%rsi, %rcx), %xmm3 156a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm2, (%rdi, %rcx) 157a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik pcmpeqb %xmm3, %xmm0 158a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik pmovmskb %xmm0, %rdx 159a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik add $16, %rcx 160a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STRNCPY 161a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik sub $16, %r8 162a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jbe L(CopyFrom1To16BytesCase2OrCase3) 163a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 164a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik test %rdx, %rdx 165a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT 166a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jnz L(CopyFrom1To16BytesUnalignedXmm3) 167a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#else 168a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jnz L(CopyFrom1To16Bytes) 169a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 170a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 171a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movaps 16(%rsi, %rcx), %xmm4 172a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm3, (%rdi, %rcx) 173a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik pcmpeqb %xmm4, %xmm0 174a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik pmovmskb %xmm0, %rdx 175a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik add $16, %rcx 176a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STRNCPY 177a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik sub $16, %r8 178a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jbe L(CopyFrom1To16BytesCase2OrCase3) 179a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 180a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik test %rdx, %rdx 181a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT 182a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jnz L(CopyFrom1To16BytesUnalignedXmm4) 183a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#else 184a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jnz L(CopyFrom1To16Bytes) 185a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 186a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 187a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movaps 16(%rsi, %rcx), %xmm1 188a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm4, (%rdi, %rcx) 189a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik pcmpeqb %xmm1, %xmm0 190a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik pmovmskb %xmm0, %rdx 191a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik add $16, %rcx 192a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STRNCPY 193a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik sub $16, %r8 194a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jbe L(CopyFrom1To16BytesCase2OrCase3) 195a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 196a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik test %rdx, %rdx 197a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT 198a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jnz L(CopyFrom1To16BytesUnalignedXmm1) 199a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#else 200a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jnz L(CopyFrom1To16Bytes) 201a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 202a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 203a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movaps 16(%rsi, %rcx), %xmm2 204a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm1, (%rdi, %rcx) 205a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik pcmpeqb %xmm2, %xmm0 206a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik pmovmskb %xmm0, %rdx 207a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik add $16, %rcx 208a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STRNCPY 209a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik sub $16, %r8 210a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jbe L(CopyFrom1To16BytesCase2OrCase3) 211a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 212a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik test %rdx, %rdx 213a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT 214a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jnz L(CopyFrom1To16BytesUnalignedXmm2) 215a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#else 216a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jnz L(CopyFrom1To16Bytes) 217a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 218a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 219a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movaps 16(%rsi, %rcx), %xmm3 220a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm2, (%rdi, %rcx) 221a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik pcmpeqb %xmm3, %xmm0 222a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik pmovmskb %xmm0, %rdx 223a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik add $16, %rcx 224a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STRNCPY 225a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik sub $16, %r8 226a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jbe L(CopyFrom1To16BytesCase2OrCase3) 227a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 228a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik test %rdx, %rdx 229a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT 230a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jnz L(CopyFrom1To16BytesUnalignedXmm3) 231a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#else 232a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jnz L(CopyFrom1To16Bytes) 233a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 234a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 235a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm3, (%rdi, %rcx) 236a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %rsi, %rdx 237a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 16(%rsi, %rcx), %rsi 238a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik and $-0x40, %rsi 239a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik sub %rsi, %rdx 240a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik sub %rdx, %rdi 241a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STRNCPY 242a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 128(%r8, %rdx), %r8 243a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 244a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(Unaligned64Loop): 245a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movaps (%rsi), %xmm2 246a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movaps %xmm2, %xmm4 247a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movaps 16(%rsi), %xmm5 248a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movaps 32(%rsi), %xmm3 249a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movaps %xmm3, %xmm6 250a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movaps 48(%rsi), %xmm7 251a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik pminub %xmm5, %xmm2 252a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik pminub %xmm7, %xmm3 253a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik pminub %xmm2, %xmm3 254a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik pcmpeqb %xmm0, %xmm3 255a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik pmovmskb %xmm3, %rdx 256a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STRNCPY 257a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik sub $64, %r8 258a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jbe L(UnalignedLeaveCase2OrCase3) 259a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 260a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik test %rdx, %rdx 261a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jnz L(Unaligned64Leave) 262a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 263a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(Unaligned64Loop_start): 264a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik add $64, %rdi 265a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik add $64, %rsi 266a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm4, -64(%rdi) 267a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movaps (%rsi), %xmm2 268a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqa %xmm2, %xmm4 269a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm5, -48(%rdi) 270a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movaps 16(%rsi), %xmm5 271a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik pminub %xmm5, %xmm2 272a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movaps 32(%rsi), %xmm3 273a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm6, -32(%rdi) 274a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movaps %xmm3, %xmm6 275a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm7, -16(%rdi) 276a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movaps 48(%rsi), %xmm7 277a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik pminub %xmm7, %xmm3 278a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik pminub %xmm2, %xmm3 279a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik pcmpeqb %xmm0, %xmm3 280a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik pmovmskb %xmm3, %rdx 281a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STRNCPY 282a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik sub $64, %r8 283a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jbe L(UnalignedLeaveCase2OrCase3) 284a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 285a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik test %rdx, %rdx 286a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jz L(Unaligned64Loop_start) 287a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 288a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(Unaligned64Leave): 289a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik pxor %xmm1, %xmm1 290a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 291a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik pcmpeqb %xmm4, %xmm0 292a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik pcmpeqb %xmm5, %xmm1 293a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik pmovmskb %xmm0, %rdx 294a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik pmovmskb %xmm1, %rcx 295a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik test %rdx, %rdx 296a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jnz L(CopyFrom1To16BytesUnaligned_0) 297a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik test %rcx, %rcx 298a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jnz L(CopyFrom1To16BytesUnaligned_16) 299a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 300a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik pcmpeqb %xmm6, %xmm0 301a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik pcmpeqb %xmm7, %xmm1 302a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik pmovmskb %xmm0, %rdx 303a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik pmovmskb %xmm1, %rcx 304a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik test %rdx, %rdx 305a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jnz L(CopyFrom1To16BytesUnaligned_32) 306a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 307a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik bsf %rcx, %rdx 308a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm4, (%rdi) 309a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm5, 16(%rdi) 310a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm6, 32(%rdi) 311a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT 312a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik# ifdef USE_AS_STPCPY 313a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 48(%rdi, %rdx), %rax 314a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik# endif 315a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm7, 48(%rdi) 316a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik add $15, %r8 317a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik sub %rdx, %r8 318a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 49(%rdi, %rdx), %rdi 319a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jmp L(StrncpyFillTailWithZero) 320a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#else 321a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik add $48, %rsi 322a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik add $48, %rdi 323a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik BRANCH_TO_JMPTBL_ENTRY (L(ExitTable), %rdx, 4) 324a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 325a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 326a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik/* If source adress alignment == destination adress alignment */ 327a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 328a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(SourceStringAlignmentLess32): 329a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik pxor %xmm0, %xmm0 330a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu (%rsi), %xmm1 331a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu 16(%rsi), %xmm2 332a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik pcmpeqb %xmm1, %xmm0 333a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik pmovmskb %xmm0, %rdx 334a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 335a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STRNCPY 336a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik# if defined USE_AS_STPCPY || defined USE_AS_STRCAT 337a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik cmp $16, %r8 338a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik# else 339a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik cmp $17, %r8 340a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik# endif 341a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jbe L(CopyFrom1To16BytesTail1Case2OrCase3) 342a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 343a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik test %rdx, %rdx 344a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jnz L(CopyFrom1To16BytesTail1) 345a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 346a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik pcmpeqb %xmm2, %xmm0 347a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm1, (%rdi) 348a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik pmovmskb %xmm0, %rdx 349a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 350a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STRNCPY 351a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik# if defined USE_AS_STPCPY || defined USE_AS_STRCAT 352a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik cmp $32, %r8 353a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik# else 354a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik cmp $33, %r8 355a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik# endif 356a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jbe L(CopyFrom1To32Bytes1Case2OrCase3) 357a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 358a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik test %rdx, %rdx 359a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jnz L(CopyFrom1To32Bytes1) 360a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 361a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik and $15, %rcx 362a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik and $-16, %rsi 363a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 364a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jmp L(Unalign16Both) 365a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 366a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik/*------End of main part with loops---------------------*/ 367a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 368a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik/* Case1 */ 369a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 370a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#if (!defined USE_AS_STRNCPY) || (defined USE_AS_STRCAT) 371a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 372a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(CopyFrom1To16Bytes): 373a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik add %rcx, %rdi 374a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik add %rcx, %rsi 375a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik bsf %rdx, %rdx 376a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik BRANCH_TO_JMPTBL_ENTRY (L(ExitTable), %rdx, 4) 377a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 378a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 379a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(CopyFrom1To16BytesTail): 380a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik add %rcx, %rsi 381a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik bsf %rdx, %rdx 382a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik BRANCH_TO_JMPTBL_ENTRY (L(ExitTable), %rdx, 4) 383a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 384a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 385a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(CopyFrom1To32Bytes1): 386a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik add $16, %rsi 387a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik add $16, %rdi 388a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT 389a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik sub $16, %r8 390a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 391a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(CopyFrom1To16BytesTail1): 392a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik bsf %rdx, %rdx 393a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik BRANCH_TO_JMPTBL_ENTRY (L(ExitTable), %rdx, 4) 394a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 395a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 396a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(CopyFrom1To32Bytes): 397a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik bsf %rdx, %rdx 398a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik add %rcx, %rsi 399a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik add $16, %rdx 400a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik sub %rcx, %rdx 401a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik BRANCH_TO_JMPTBL_ENTRY (L(ExitTable), %rdx, 4) 402a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 403a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 404a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(CopyFrom1To16BytesUnaligned_0): 405a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik bsf %rdx, %rdx 406a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT 407a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik# ifdef USE_AS_STPCPY 408a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea (%rdi, %rdx), %rax 409a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik# endif 410a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm4, (%rdi) 411a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik add $63, %r8 412a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik sub %rdx, %r8 413a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 1(%rdi, %rdx), %rdi 414a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jmp L(StrncpyFillTailWithZero) 415a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#else 416a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik BRANCH_TO_JMPTBL_ENTRY (L(ExitTable), %rdx, 4) 417a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 418a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 419a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 420a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(CopyFrom1To16BytesUnaligned_16): 421a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik bsf %rcx, %rdx 422a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm4, (%rdi) 423a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT 424a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik# ifdef USE_AS_STPCPY 425a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 16(%rdi, %rdx), %rax 426a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik# endif 427a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm5, 16(%rdi) 428a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik add $47, %r8 429a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik sub %rdx, %r8 430a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 17(%rdi, %rdx), %rdi 431a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jmp L(StrncpyFillTailWithZero) 432a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#else 433a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik add $16, %rsi 434a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik add $16, %rdi 435a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik BRANCH_TO_JMPTBL_ENTRY (L(ExitTable), %rdx, 4) 436a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 437a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 438a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 439a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(CopyFrom1To16BytesUnaligned_32): 440a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik bsf %rdx, %rdx 441a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm4, (%rdi) 442a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm5, 16(%rdi) 443a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT 444a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik# ifdef USE_AS_STPCPY 445a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 32(%rdi, %rdx), %rax 446a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik# endif 447a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm6, 32(%rdi) 448a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik add $31, %r8 449a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik sub %rdx, %r8 450a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 33(%rdi, %rdx), %rdi 451a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jmp L(StrncpyFillTailWithZero) 452a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#else 453a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik add $32, %rsi 454a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik add $32, %rdi 455a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik BRANCH_TO_JMPTBL_ENTRY (L(ExitTable), %rdx, 4) 456a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 457a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 458a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STRNCPY 459a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik# ifndef USE_AS_STRCAT 460a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 461a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(CopyFrom1To16BytesUnalignedXmm6): 462a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm6, (%rdi, %rcx) 463a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jmp L(CopyFrom1To16BytesXmmExit) 464a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 465a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 466a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(CopyFrom1To16BytesUnalignedXmm5): 467a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm5, (%rdi, %rcx) 468a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jmp L(CopyFrom1To16BytesXmmExit) 469a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 470a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 471a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(CopyFrom1To16BytesUnalignedXmm4): 472a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm4, (%rdi, %rcx) 473a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jmp L(CopyFrom1To16BytesXmmExit) 474a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 475a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 476a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(CopyFrom1To16BytesUnalignedXmm3): 477a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm3, (%rdi, %rcx) 478a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jmp L(CopyFrom1To16BytesXmmExit) 479a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 480a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 481a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(CopyFrom1To16BytesUnalignedXmm1): 482a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm1, (%rdi, %rcx) 483a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jmp L(CopyFrom1To16BytesXmmExit) 484a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik# endif 485a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 486a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 487a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(CopyFrom1To16BytesExit): 488a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik BRANCH_TO_JMPTBL_ENTRY (L(ExitTable), %rdx, 4) 489a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 490a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik/* Case2 */ 491a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 492a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 493a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(CopyFrom1To16BytesCase2): 494a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik add $16, %r8 495a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik add %rcx, %rdi 496a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik add %rcx, %rsi 497a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik bsf %rdx, %rdx 498a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik cmp %r8, %rdx 499a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jb L(CopyFrom1To16BytesExit) 500a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik BRANCH_TO_JMPTBL_ENTRY (L(ExitStrncpyTable), %r8, 4) 501a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 502a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 503a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(CopyFrom1To32BytesCase2): 504a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik add %rcx, %rsi 505a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik bsf %rdx, %rdx 506a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik add $16, %rdx 507a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik sub %rcx, %rdx 508a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik cmp %r8, %rdx 509a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jb L(CopyFrom1To16BytesExit) 510a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik BRANCH_TO_JMPTBL_ENTRY (L(ExitStrncpyTable), %r8, 4) 511a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 512a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(CopyFrom1To16BytesTailCase2): 513a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik add %rcx, %rsi 514a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik bsf %rdx, %rdx 515a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik cmp %r8, %rdx 516a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jb L(CopyFrom1To16BytesExit) 517a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik BRANCH_TO_JMPTBL_ENTRY (L(ExitStrncpyTable), %r8, 4) 518a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 519a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(CopyFrom1To16BytesTail1Case2): 520a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik bsf %rdx, %rdx 521a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik cmp %r8, %rdx 522a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jb L(CopyFrom1To16BytesExit) 523a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik BRANCH_TO_JMPTBL_ENTRY (L(ExitStrncpyTable), %r8, 4) 524a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 525a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik/* Case2 or Case3, Case3 */ 526a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 527a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 528a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(CopyFrom1To16BytesCase2OrCase3): 529a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik test %rdx, %rdx 530a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jnz L(CopyFrom1To16BytesCase2) 531a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(CopyFrom1To16BytesCase3): 532a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik add $16, %r8 533a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik add %rcx, %rdi 534a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik add %rcx, %rsi 535a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik BRANCH_TO_JMPTBL_ENTRY (L(ExitStrncpyTable), %r8, 4) 536a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 537a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 538a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(CopyFrom1To32BytesCase2OrCase3): 539a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik test %rdx, %rdx 540a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jnz L(CopyFrom1To32BytesCase2) 541a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik add %rcx, %rsi 542a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik BRANCH_TO_JMPTBL_ENTRY (L(ExitStrncpyTable), %r8, 4) 543a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 544a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 545a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(CopyFrom1To16BytesTailCase2OrCase3): 546a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik test %rdx, %rdx 547a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jnz L(CopyFrom1To16BytesTailCase2) 548a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik add %rcx, %rsi 549a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik BRANCH_TO_JMPTBL_ENTRY (L(ExitStrncpyTable), %r8, 4) 550a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 551a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 552a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(CopyFrom1To32Bytes1Case2OrCase3): 553a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik add $16, %rdi 554a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik add $16, %rsi 555a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik sub $16, %r8 556a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(CopyFrom1To16BytesTail1Case2OrCase3): 557a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik test %rdx, %rdx 558a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jnz L(CopyFrom1To16BytesTail1Case2) 559a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik BRANCH_TO_JMPTBL_ENTRY (L(ExitStrncpyTable), %r8, 4) 560a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 561a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 562a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 563a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik/*------------End labels regarding with copying 1-16 bytes--and 1-32 bytes----*/ 564a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 565a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 566a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(Exit1): 567a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %dh, (%rdi) 568a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STPCPY 569a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea (%rdi), %rax 570a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 571a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT 572a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik sub $1, %r8 573a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 1(%rdi), %rdi 574a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jnz L(StrncpyFillTailWithZero) 575a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 576a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 577a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 578a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 579a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(Exit2): 580a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov (%rsi), %dx 581a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %dx, (%rdi) 582a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STPCPY 583a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 1(%rdi), %rax 584a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 585a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT 586a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik sub $2, %r8 587a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 2(%rdi), %rdi 588a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jnz L(StrncpyFillTailWithZero) 589a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 590a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 591a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 592a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 593a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(Exit3): 594a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov (%rsi), %cx 595a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %cx, (%rdi) 596a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %dh, 2(%rdi) 597a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STPCPY 598a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 2(%rdi), %rax 599a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 600a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT 601a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik sub $3, %r8 602a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 3(%rdi), %rdi 603a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jnz L(StrncpyFillTailWithZero) 604a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 605a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 606a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 607a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 608a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(Exit4): 609a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov (%rsi), %edx 610a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %edx, (%rdi) 611a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STPCPY 612a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 3(%rdi), %rax 613a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 614a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT 615a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik sub $4, %r8 616a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 4(%rdi), %rdi 617a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jnz L(StrncpyFillTailWithZero) 618a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 619a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 620a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 621a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 622a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(Exit5): 623a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov (%rsi), %ecx 624a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %dh, 4(%rdi) 625a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %ecx, (%rdi) 626a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STPCPY 627a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 4(%rdi), %rax 628a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 629a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT 630a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik sub $5, %r8 631a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 5(%rdi), %rdi 632a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jnz L(StrncpyFillTailWithZero) 633a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 634a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 635a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 636a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 637a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(Exit6): 638a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov (%rsi), %ecx 639a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov 4(%rsi), %dx 640a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %ecx, (%rdi) 641a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %dx, 4(%rdi) 642a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STPCPY 643a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 5(%rdi), %rax 644a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 645a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT 646a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik sub $6, %r8 647a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 6(%rdi), %rdi 648a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jnz L(StrncpyFillTailWithZero) 649a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 650a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 651a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 652a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 653a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(Exit7): 654a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov (%rsi), %ecx 655a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov 3(%rsi), %edx 656a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %ecx, (%rdi) 657a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %edx, 3(%rdi) 658a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STPCPY 659a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 6(%rdi), %rax 660a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 661a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT 662a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik sub $7, %r8 663a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 7(%rdi), %rdi 664a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jnz L(StrncpyFillTailWithZero) 665a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 666a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 667a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 668a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 669a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(Exit8): 670a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov (%rsi), %rdx 671a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %rdx, (%rdi) 672a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STPCPY 673a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 7(%rdi), %rax 674a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 675a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT 676a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik sub $8, %r8 677a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 8(%rdi), %rdi 678a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jnz L(StrncpyFillTailWithZero) 679a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 680a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 681a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 682a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 683a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(Exit9): 684a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov (%rsi), %rcx 685a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %dh, 8(%rdi) 686a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %rcx, (%rdi) 687a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STPCPY 688a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 8(%rdi), %rax 689a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 690a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT 691a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik sub $9, %r8 692a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 9(%rdi), %rdi 693a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jnz L(StrncpyFillTailWithZero) 694a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 695a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 696a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 697a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 698a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(Exit10): 699a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov (%rsi), %rcx 700a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov 8(%rsi), %dx 701a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %rcx, (%rdi) 702a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %dx, 8(%rdi) 703a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STPCPY 704a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 9(%rdi), %rax 705a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 706a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT 707a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik sub $10, %r8 708a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 10(%rdi), %rdi 709a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jnz L(StrncpyFillTailWithZero) 710a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 711a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 712a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 713a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 714a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(Exit11): 715a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov (%rsi), %rcx 716a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov 7(%rsi), %edx 717a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %rcx, (%rdi) 718a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %edx, 7(%rdi) 719a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STPCPY 720a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 10(%rdi), %rax 721a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 722a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT 723a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik sub $11, %r8 724a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 11(%rdi), %rdi 725a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jnz L(StrncpyFillTailWithZero) 726a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 727a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 728a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 729a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 730a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(Exit12): 731a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov (%rsi), %rcx 732a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov 8(%rsi), %edx 733a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %rcx, (%rdi) 734a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %edx, 8(%rdi) 735a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STPCPY 736a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 11(%rdi), %rax 737a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 738a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT 739a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik sub $12, %r8 740a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 12(%rdi), %rdi 741a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jnz L(StrncpyFillTailWithZero) 742a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 743a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 744a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 745a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 746a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(Exit13): 747a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov (%rsi), %rcx 748a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov 5(%rsi), %rdx 749a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %rcx, (%rdi) 750a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %rdx, 5(%rdi) 751a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STPCPY 752a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 12(%rdi), %rax 753a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 754a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT 755a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik sub $13, %r8 756a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 13(%rdi), %rdi 757a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jnz L(StrncpyFillTailWithZero) 758a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 759a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 760a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 761a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 762a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(Exit14): 763a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov (%rsi), %rcx 764a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov 6(%rsi), %rdx 765a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %rcx, (%rdi) 766a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %rdx, 6(%rdi) 767a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STPCPY 768a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 13(%rdi), %rax 769a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 770a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT 771a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik sub $14, %r8 772a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 14(%rdi), %rdi 773a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jnz L(StrncpyFillTailWithZero) 774a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 775a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 776a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 777a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 778a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(Exit15): 779a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov (%rsi), %rcx 780a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov 7(%rsi), %rdx 781a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %rcx, (%rdi) 782a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %rdx, 7(%rdi) 783a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STPCPY 784a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 14(%rdi), %rax 785a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 786a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT 787a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik sub $15, %r8 788a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 15(%rdi), %rdi 789a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jnz L(StrncpyFillTailWithZero) 790a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 791a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 792a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 793a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 794a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(Exit16): 795a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu (%rsi), %xmm0 796a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm0, (%rdi) 797a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STPCPY 798a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 15(%rdi), %rax 799a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 800a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT 801a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik sub $16, %r8 802a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 16(%rdi), %rdi 803a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jnz L(StrncpyFillTailWithZero) 804a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 805a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 806a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 807a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 808a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(Exit17): 809a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu (%rsi), %xmm0 810a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm0, (%rdi) 811a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %dh, 16(%rdi) 812a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STPCPY 813a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 16(%rdi), %rax 814a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 815a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT 816a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik sub $17, %r8 817a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 17(%rdi), %rdi 818a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jnz L(StrncpyFillTailWithZero) 819a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 820a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 821a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 822a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 823a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(Exit18): 824a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu (%rsi), %xmm0 825a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov 16(%rsi), %cx 826a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm0, (%rdi) 827a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %cx, 16(%rdi) 828a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STPCPY 829a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 17(%rdi), %rax 830a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 831a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT 832a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik sub $18, %r8 833a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 18(%rdi), %rdi 834a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jnz L(StrncpyFillTailWithZero) 835a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 836a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 837a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 838a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 839a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(Exit19): 840a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu (%rsi), %xmm0 841a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov 15(%rsi), %ecx 842a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm0, (%rdi) 843a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %ecx, 15(%rdi) 844a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STPCPY 845a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 18(%rdi), %rax 846a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 847a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT 848a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik sub $19, %r8 849a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 19(%rdi), %rdi 850a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jnz L(StrncpyFillTailWithZero) 851a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 852a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 853a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 854a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 855a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(Exit20): 856a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu (%rsi), %xmm0 857a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov 16(%rsi), %ecx 858a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm0, (%rdi) 859a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %ecx, 16(%rdi) 860a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STPCPY 861a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 19(%rdi), %rax 862a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 863a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT 864a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik sub $20, %r8 865a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 20(%rdi), %rdi 866a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jnz L(StrncpyFillTailWithZero) 867a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 868a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 869a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 870a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 871a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(Exit21): 872a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu (%rsi), %xmm0 873a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov 16(%rsi), %ecx 874a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm0, (%rdi) 875a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %ecx, 16(%rdi) 876a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %dh, 20(%rdi) 877a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STPCPY 878a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 20(%rdi), %rax 879a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 880a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT 881a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik sub $21, %r8 882a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 21(%rdi), %rdi 883a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jnz L(StrncpyFillTailWithZero) 884a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 885a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 886a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 887a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 888a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(Exit22): 889a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu (%rsi), %xmm0 890a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov 14(%rsi), %rcx 891a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm0, (%rdi) 892a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %rcx, 14(%rdi) 893a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STPCPY 894a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 21(%rdi), %rax 895a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 896a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT 897a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik sub $22, %r8 898a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 22(%rdi), %rdi 899a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jnz L(StrncpyFillTailWithZero) 900a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 901a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 902a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 903a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 904a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(Exit23): 905a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu (%rsi), %xmm0 906a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov 15(%rsi), %rcx 907a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm0, (%rdi) 908a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %rcx, 15(%rdi) 909a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STPCPY 910a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 22(%rdi), %rax 911a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 912a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT 913a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik sub $23, %r8 914a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 23(%rdi), %rdi 915a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jnz L(StrncpyFillTailWithZero) 916a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 917a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 918a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 919a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 920a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(Exit24): 921a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu (%rsi), %xmm0 922a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov 16(%rsi), %rcx 923a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm0, (%rdi) 924a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %rcx, 16(%rdi) 925a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STPCPY 926a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 23(%rdi), %rax 927a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 928a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT 929a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik sub $24, %r8 930a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 24(%rdi), %rdi 931a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jnz L(StrncpyFillTailWithZero) 932a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 933a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 934a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 935a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 936a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(Exit25): 937a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu (%rsi), %xmm0 938a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov 16(%rsi), %rcx 939a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm0, (%rdi) 940a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %rcx, 16(%rdi) 941a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %dh, 24(%rdi) 942a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STPCPY 943a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 24(%rdi), %rax 944a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 945a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT 946a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik sub $25, %r8 947a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 25(%rdi), %rdi 948a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jnz L(StrncpyFillTailWithZero) 949a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 950a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 951a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 952a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 953a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(Exit26): 954a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu (%rsi), %xmm0 955a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov 16(%rsi), %rdx 956a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov 24(%rsi), %cx 957a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm0, (%rdi) 958a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %rdx, 16(%rdi) 959a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %cx, 24(%rdi) 960a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STPCPY 961a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 25(%rdi), %rax 962a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 963a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT 964a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik sub $26, %r8 965a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 26(%rdi), %rdi 966a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jnz L(StrncpyFillTailWithZero) 967a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 968a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 969a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 970a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 971a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(Exit27): 972a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu (%rsi), %xmm0 973a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov 16(%rsi), %rdx 974a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov 23(%rsi), %ecx 975a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm0, (%rdi) 976a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %rdx, 16(%rdi) 977a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %ecx, 23(%rdi) 978a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STPCPY 979a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 26(%rdi), %rax 980a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 981a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT 982a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik sub $27, %r8 983a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 27(%rdi), %rdi 984a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jnz L(StrncpyFillTailWithZero) 985a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 986a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 987a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 988a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 989a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(Exit28): 990a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu (%rsi), %xmm0 991a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov 16(%rsi), %rdx 992a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov 24(%rsi), %ecx 993a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm0, (%rdi) 994a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %rdx, 16(%rdi) 995a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %ecx, 24(%rdi) 996a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STPCPY 997a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 27(%rdi), %rax 998a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 999a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT 1000a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik sub $28, %r8 1001a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 28(%rdi), %rdi 1002a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jnz L(StrncpyFillTailWithZero) 1003a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1004a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 1005a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1006a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 1007a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(Exit29): 1008a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu (%rsi), %xmm0 1009a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu 13(%rsi), %xmm2 1010a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm0, (%rdi) 1011a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm2, 13(%rdi) 1012a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STPCPY 1013a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 28(%rdi), %rax 1014a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1015a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT 1016a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik sub $29, %r8 1017a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 29(%rdi), %rdi 1018a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jnz L(StrncpyFillTailWithZero) 1019a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1020a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 1021a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1022a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 1023a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(Exit30): 1024a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu (%rsi), %xmm0 1025a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu 14(%rsi), %xmm2 1026a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm0, (%rdi) 1027a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm2, 14(%rdi) 1028a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STPCPY 1029a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 29(%rdi), %rax 1030a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1031a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT 1032a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik sub $30, %r8 1033a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 30(%rdi), %rdi 1034a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jnz L(StrncpyFillTailWithZero) 1035a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1036a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 1037a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1038a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 1039a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(Exit31): 1040a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu (%rsi), %xmm0 1041a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu 15(%rsi), %xmm2 1042a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm0, (%rdi) 1043a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm2, 15(%rdi) 1044a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STPCPY 1045a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 30(%rdi), %rax 1046a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1047a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT 1048a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik sub $31, %r8 1049a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 31(%rdi), %rdi 1050a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jnz L(StrncpyFillTailWithZero) 1051a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1052a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 1053a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1054a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 1055a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(Exit32): 1056a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu (%rsi), %xmm0 1057a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu 16(%rsi), %xmm2 1058a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm0, (%rdi) 1059a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm2, 16(%rdi) 1060a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STPCPY 1061a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 31(%rdi), %rax 1062a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1063a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#if defined USE_AS_STRNCPY && !defined USE_AS_STRCAT 1064a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik sub $32, %r8 1065a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 32(%rdi), %rdi 1066a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jnz L(StrncpyFillTailWithZero) 1067a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1068a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 1069a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1070a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STRNCPY 1071a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1072a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 1073a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(StrncpyExit0): 1074a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STPCPY 1075a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %rdi, %rax 1076a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1077a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STRCAT 1078a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik xor %ch, %ch 1079a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movb %ch, (%rdi) 1080a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1081a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 1082a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1083a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 1084a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(StrncpyExit1): 1085a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov (%rsi), %dl 1086a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %dl, (%rdi) 1087a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STPCPY 1088a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 1(%rdi), %rax 1089a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1090a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STRCAT 1091a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik xor %ch, %ch 1092a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movb %ch, 1(%rdi) 1093a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1094a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 1095a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1096a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 1097a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(StrncpyExit2): 1098a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov (%rsi), %dx 1099a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %dx, (%rdi) 1100a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STPCPY 1101a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 2(%rdi), %rax 1102a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1103a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STRCAT 1104a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik xor %ch, %ch 1105a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movb %ch, 2(%rdi) 1106a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1107a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 1108a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1109a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 1110a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(StrncpyExit3): 1111a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov (%rsi), %cx 1112a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov 2(%rsi), %dl 1113a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %cx, (%rdi) 1114a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %dl, 2(%rdi) 1115a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STPCPY 1116a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 3(%rdi), %rax 1117a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1118a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STRCAT 1119a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik xor %ch, %ch 1120a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movb %ch, 3(%rdi) 1121a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1122a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 1123a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1124a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 1125a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(StrncpyExit4): 1126a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov (%rsi), %edx 1127a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %edx, (%rdi) 1128a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STPCPY 1129a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 4(%rdi), %rax 1130a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1131a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STRCAT 1132a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik xor %ch, %ch 1133a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movb %ch, 4(%rdi) 1134a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1135a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 1136a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1137a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 1138a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(StrncpyExit5): 1139a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov (%rsi), %ecx 1140a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov 4(%rsi), %dl 1141a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %ecx, (%rdi) 1142a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %dl, 4(%rdi) 1143a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STPCPY 1144a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 5(%rdi), %rax 1145a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1146a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STRCAT 1147a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik xor %ch, %ch 1148a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movb %ch, 5(%rdi) 1149a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1150a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 1151a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1152a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 1153a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(StrncpyExit6): 1154a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov (%rsi), %ecx 1155a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov 4(%rsi), %dx 1156a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %ecx, (%rdi) 1157a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %dx, 4(%rdi) 1158a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STPCPY 1159a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 6(%rdi), %rax 1160a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1161a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STRCAT 1162a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik xor %ch, %ch 1163a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movb %ch, 6(%rdi) 1164a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1165a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 1166a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1167a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 1168a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(StrncpyExit7): 1169a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov (%rsi), %ecx 1170a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov 3(%rsi), %edx 1171a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %ecx, (%rdi) 1172a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %edx, 3(%rdi) 1173a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STPCPY 1174a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 7(%rdi), %rax 1175a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1176a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STRCAT 1177a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik xor %ch, %ch 1178a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movb %ch, 7(%rdi) 1179a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1180a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 1181a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1182a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 1183a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(StrncpyExit8): 1184a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov (%rsi), %rdx 1185a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %rdx, (%rdi) 1186a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STPCPY 1187a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 8(%rdi), %rax 1188a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1189a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STRCAT 1190a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik xor %ch, %ch 1191a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movb %ch, 8(%rdi) 1192a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1193a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 1194a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1195a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 1196a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(StrncpyExit9): 1197a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov (%rsi), %rcx 1198a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov 8(%rsi), %dl 1199a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %rcx, (%rdi) 1200a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %dl, 8(%rdi) 1201a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STPCPY 1202a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 9(%rdi), %rax 1203a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1204a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STRCAT 1205a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik xor %ch, %ch 1206a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movb %ch, 9(%rdi) 1207a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1208a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 1209a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1210a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 1211a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(StrncpyExit10): 1212a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov (%rsi), %rcx 1213a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov 8(%rsi), %dx 1214a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %rcx, (%rdi) 1215a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %dx, 8(%rdi) 1216a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STPCPY 1217a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 10(%rdi), %rax 1218a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1219a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STRCAT 1220a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik xor %ch, %ch 1221a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movb %ch, 10(%rdi) 1222a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1223a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 1224a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1225a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 1226a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(StrncpyExit11): 1227a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov (%rsi), %rcx 1228a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov 7(%rsi), %edx 1229a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %rcx, (%rdi) 1230a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %edx, 7(%rdi) 1231a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STPCPY 1232a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 11(%rdi), %rax 1233a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1234a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STRCAT 1235a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik xor %ch, %ch 1236a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movb %ch, 11(%rdi) 1237a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1238a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 1239a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1240a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 1241a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(StrncpyExit12): 1242a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov (%rsi), %rcx 1243a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov 8(%rsi), %edx 1244a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %rcx, (%rdi) 1245a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %edx, 8(%rdi) 1246a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STPCPY 1247a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 12(%rdi), %rax 1248a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1249a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STRCAT 1250a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik xor %ch, %ch 1251a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movb %ch, 12(%rdi) 1252a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1253a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 1254a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1255a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 1256a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(StrncpyExit13): 1257a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov (%rsi), %rcx 1258a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov 5(%rsi), %rdx 1259a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %rcx, (%rdi) 1260a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %rdx, 5(%rdi) 1261a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STPCPY 1262a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 13(%rdi), %rax 1263a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1264a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STRCAT 1265a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik xor %ch, %ch 1266a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movb %ch, 13(%rdi) 1267a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1268a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 1269a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1270a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 1271a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(StrncpyExit14): 1272a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov (%rsi), %rcx 1273a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov 6(%rsi), %rdx 1274a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %rcx, (%rdi) 1275a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %rdx, 6(%rdi) 1276a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STPCPY 1277a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 14(%rdi), %rax 1278a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1279a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STRCAT 1280a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik xor %ch, %ch 1281a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movb %ch, 14(%rdi) 1282a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1283a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 1284a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1285a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 1286a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(StrncpyExit15): 1287a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov (%rsi), %rcx 1288a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov 7(%rsi), %rdx 1289a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %rcx, (%rdi) 1290a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %rdx, 7(%rdi) 1291a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STPCPY 1292a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 15(%rdi), %rax 1293a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1294a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STRCAT 1295a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik xor %ch, %ch 1296a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movb %ch, 15(%rdi) 1297a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1298a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 1299a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1300a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 1301a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(StrncpyExit16): 1302a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu (%rsi), %xmm0 1303a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm0, (%rdi) 1304a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STPCPY 1305a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 16(%rdi), %rax 1306a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1307a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STRCAT 1308a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik xor %ch, %ch 1309a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movb %ch, 16(%rdi) 1310a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1311a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 1312a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1313a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 1314a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(StrncpyExit17): 1315a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu (%rsi), %xmm0 1316a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov 16(%rsi), %cl 1317a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm0, (%rdi) 1318a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %cl, 16(%rdi) 1319a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STPCPY 1320a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 17(%rdi), %rax 1321a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1322a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STRCAT 1323a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik xor %ch, %ch 1324a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movb %ch, 17(%rdi) 1325a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1326a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 1327a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1328a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 1329a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(StrncpyExit18): 1330a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu (%rsi), %xmm0 1331a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov 16(%rsi), %cx 1332a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm0, (%rdi) 1333a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %cx, 16(%rdi) 1334a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STPCPY 1335a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 18(%rdi), %rax 1336a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1337a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STRCAT 1338a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik xor %ch, %ch 1339a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movb %ch, 18(%rdi) 1340a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1341a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 1342a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1343a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 1344a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(StrncpyExit19): 1345a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu (%rsi), %xmm0 1346a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov 15(%rsi), %ecx 1347a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm0, (%rdi) 1348a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %ecx, 15(%rdi) 1349a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STPCPY 1350a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 19(%rdi), %rax 1351a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1352a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STRCAT 1353a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik xor %ch, %ch 1354a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movb %ch, 19(%rdi) 1355a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1356a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 1357a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1358a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 1359a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(StrncpyExit20): 1360a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu (%rsi), %xmm0 1361a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov 16(%rsi), %ecx 1362a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm0, (%rdi) 1363a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %ecx, 16(%rdi) 1364a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STPCPY 1365a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 20(%rdi), %rax 1366a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1367a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STRCAT 1368a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik xor %ch, %ch 1369a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movb %ch, 20(%rdi) 1370a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1371a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 1372a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1373a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 1374a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(StrncpyExit21): 1375a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu (%rsi), %xmm0 1376a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov 16(%rsi), %ecx 1377a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov 20(%rsi), %dl 1378a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm0, (%rdi) 1379a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %ecx, 16(%rdi) 1380a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %dl, 20(%rdi) 1381a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STPCPY 1382a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 21(%rdi), %rax 1383a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1384a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STRCAT 1385a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik xor %ch, %ch 1386a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movb %ch, 21(%rdi) 1387a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1388a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 1389a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1390a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 1391a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(StrncpyExit22): 1392a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu (%rsi), %xmm0 1393a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov 14(%rsi), %rcx 1394a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm0, (%rdi) 1395a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %rcx, 14(%rdi) 1396a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STPCPY 1397a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 22(%rdi), %rax 1398a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1399a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STRCAT 1400a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik xor %ch, %ch 1401a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movb %ch, 22(%rdi) 1402a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1403a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 1404a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1405a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 1406a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(StrncpyExit23): 1407a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu (%rsi), %xmm0 1408a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov 15(%rsi), %rcx 1409a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm0, (%rdi) 1410a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %rcx, 15(%rdi) 1411a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STPCPY 1412a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 23(%rdi), %rax 1413a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1414a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STRCAT 1415a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik xor %ch, %ch 1416a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movb %ch, 23(%rdi) 1417a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1418a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 1419a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1420a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 1421a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(StrncpyExit24): 1422a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu (%rsi), %xmm0 1423a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov 16(%rsi), %rcx 1424a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm0, (%rdi) 1425a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %rcx, 16(%rdi) 1426a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STPCPY 1427a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 24(%rdi), %rax 1428a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1429a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STRCAT 1430a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik xor %ch, %ch 1431a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movb %ch, 24(%rdi) 1432a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1433a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 1434a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1435a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 1436a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(StrncpyExit25): 1437a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu (%rsi), %xmm0 1438a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov 16(%rsi), %rdx 1439a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov 24(%rsi), %cl 1440a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm0, (%rdi) 1441a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %rdx, 16(%rdi) 1442a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %cl, 24(%rdi) 1443a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STPCPY 1444a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 25(%rdi), %rax 1445a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1446a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STRCAT 1447a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik xor %ch, %ch 1448a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movb %ch, 25(%rdi) 1449a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1450a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 1451a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1452a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 1453a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(StrncpyExit26): 1454a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu (%rsi), %xmm0 1455a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov 16(%rsi), %rdx 1456a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov 24(%rsi), %cx 1457a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm0, (%rdi) 1458a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %rdx, 16(%rdi) 1459a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %cx, 24(%rdi) 1460a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STPCPY 1461a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 26(%rdi), %rax 1462a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1463a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STRCAT 1464a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik xor %ch, %ch 1465a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movb %ch, 26(%rdi) 1466a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1467a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 1468a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1469a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 1470a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(StrncpyExit27): 1471a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu (%rsi), %xmm0 1472a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov 16(%rsi), %rdx 1473a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov 23(%rsi), %ecx 1474a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm0, (%rdi) 1475a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %rdx, 16(%rdi) 1476a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %ecx, 23(%rdi) 1477a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STPCPY 1478a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 27(%rdi), %rax 1479a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1480a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STRCAT 1481a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik xor %ch, %ch 1482a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movb %ch, 27(%rdi) 1483a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1484a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 1485a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1486a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 1487a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(StrncpyExit28): 1488a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu (%rsi), %xmm0 1489a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov 16(%rsi), %rdx 1490a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov 24(%rsi), %ecx 1491a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm0, (%rdi) 1492a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %rdx, 16(%rdi) 1493a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %ecx, 24(%rdi) 1494a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STPCPY 1495a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 28(%rdi), %rax 1496a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1497a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STRCAT 1498a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik xor %ch, %ch 1499a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movb %ch, 28(%rdi) 1500a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1501a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 1502a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1503a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 1504a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(StrncpyExit29): 1505a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu (%rsi), %xmm0 1506a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu 13(%rsi), %xmm2 1507a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm0, (%rdi) 1508a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm2, 13(%rdi) 1509a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STPCPY 1510a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 29(%rdi), %rax 1511a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1512a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STRCAT 1513a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik xor %ch, %ch 1514a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movb %ch, 29(%rdi) 1515a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1516a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 1517a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1518a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 1519a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(StrncpyExit30): 1520a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu (%rsi), %xmm0 1521a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu 14(%rsi), %xmm2 1522a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm0, (%rdi) 1523a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm2, 14(%rdi) 1524a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STPCPY 1525a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 30(%rdi), %rax 1526a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1527a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STRCAT 1528a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik xor %ch, %ch 1529a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movb %ch, 30(%rdi) 1530a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1531a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 1532a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1533a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 1534a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(StrncpyExit31): 1535a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu (%rsi), %xmm0 1536a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu 15(%rsi), %xmm2 1537a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm0, (%rdi) 1538a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm2, 15(%rdi) 1539a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STPCPY 1540a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 31(%rdi), %rax 1541a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1542a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STRCAT 1543a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik xor %ch, %ch 1544a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movb %ch, 31(%rdi) 1545a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1546a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 1547a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1548a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 1549a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(StrncpyExit32): 1550a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu (%rsi), %xmm0 1551a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu 16(%rsi), %xmm2 1552a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm0, (%rdi) 1553a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm2, 16(%rdi) 1554a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STPCPY 1555a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 32(%rdi), %rax 1556a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1557a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STRCAT 1558a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik xor %ch, %ch 1559a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movb %ch, 32(%rdi) 1560a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1561a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 1562a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1563a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 1564a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(StrncpyExit33): 1565a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu (%rsi), %xmm0 1566a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu 16(%rsi), %xmm2 1567a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov 32(%rsi), %cl 1568a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm0, (%rdi) 1569a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm2, 16(%rdi) 1570a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %cl, 32(%rdi) 1571a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STRCAT 1572a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik xor %ch, %ch 1573a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movb %ch, 33(%rdi) 1574a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1575a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 1576a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1577a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifndef USE_AS_STRCAT 1578a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1579a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 1580a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(Fill0): 1581a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 1582a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1583a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 1584a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(Fill1): 1585a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %dl, (%rdi) 1586a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 1587a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1588a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 1589a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(Fill2): 1590a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %dx, (%rdi) 1591a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 1592a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1593a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 1594a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(Fill3): 1595a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %edx, -1(%rdi) 1596a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 1597a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1598a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 1599a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(Fill4): 1600a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %edx, (%rdi) 1601a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 1602a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1603a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 1604a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(Fill5): 1605a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %edx, (%rdi) 1606a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %dl, 4(%rdi) 1607a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 1608a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1609a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 1610a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(Fill6): 1611a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %edx, (%rdi) 1612a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %dx, 4(%rdi) 1613a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 1614a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1615a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 1616a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(Fill7): 1617a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %rdx, -1(%rdi) 1618a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 1619a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1620a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 1621a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(Fill8): 1622a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %rdx, (%rdi) 1623a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 1624a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1625a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 1626a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(Fill9): 1627a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %rdx, (%rdi) 1628a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %dl, 8(%rdi) 1629a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 1630a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1631a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 1632a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(Fill10): 1633a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %rdx, (%rdi) 1634a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %dx, 8(%rdi) 1635a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 1636a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1637a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 1638a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(Fill11): 1639a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %rdx, (%rdi) 1640a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %edx, 7(%rdi) 1641a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 1642a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1643a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 1644a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(Fill12): 1645a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %rdx, (%rdi) 1646a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %edx, 8(%rdi) 1647a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 1648a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1649a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 1650a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(Fill13): 1651a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %rdx, (%rdi) 1652a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %rdx, 5(%rdi) 1653a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 1654a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1655a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 1656a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(Fill14): 1657a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %rdx, (%rdi) 1658a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %rdx, 6(%rdi) 1659a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 1660a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1661a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 1662a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(Fill15): 1663a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm0, -1(%rdi) 1664a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 1665a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1666a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 1667a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(Fill16): 1668a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm0, (%rdi) 1669a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 1670a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1671a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 1672a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(CopyFrom1To16BytesUnalignedXmm2): 1673a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm2, (%rdi, %rcx) 1674a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1675a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 1676a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(CopyFrom1To16BytesXmmExit): 1677a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik bsf %rdx, %rdx 1678a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik add $15, %r8 1679a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik add %rcx, %rdi 1680a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STPCPY 1681a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea (%rdi, %rdx), %rax 1682a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1683a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik sub %rdx, %r8 1684a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 1(%rdi, %rdx), %rdi 1685a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1686a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 1687a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(StrncpyFillTailWithZero): 1688a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik pxor %xmm0, %xmm0 1689a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik xor %rdx, %rdx 1690a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik sub $16, %r8 1691a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jbe L(StrncpyFillExit) 1692a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1693a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm0, (%rdi) 1694a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik add $16, %rdi 1695a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1696a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %rdi, %rsi 1697a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik and $0xf, %rsi 1698a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik sub %rsi, %rdi 1699a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik add %rsi, %r8 1700a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik sub $64, %r8 1701a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jb L(StrncpyFillLess64) 1702a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1703a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(StrncpyFillLoopMovdqa): 1704a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqa %xmm0, (%rdi) 1705a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqa %xmm0, 16(%rdi) 1706a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqa %xmm0, 32(%rdi) 1707a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqa %xmm0, 48(%rdi) 1708a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik add $64, %rdi 1709a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik sub $64, %r8 1710a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jae L(StrncpyFillLoopMovdqa) 1711a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1712a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(StrncpyFillLess64): 1713a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik add $32, %r8 1714a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jl L(StrncpyFillLess32) 1715a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqa %xmm0, (%rdi) 1716a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqa %xmm0, 16(%rdi) 1717a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik add $32, %rdi 1718a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik sub $16, %r8 1719a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jl L(StrncpyFillExit) 1720a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqa %xmm0, (%rdi) 1721a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik add $16, %rdi 1722a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik BRANCH_TO_JMPTBL_ENTRY (L(FillTable), %r8, 4) 1723a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1724a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(StrncpyFillLess32): 1725a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik add $16, %r8 1726a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jl L(StrncpyFillExit) 1727a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqa %xmm0, (%rdi) 1728a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik add $16, %rdi 1729a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik BRANCH_TO_JMPTBL_ENTRY (L(FillTable), %r8, 4) 1730a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1731a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(StrncpyFillExit): 1732a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik add $16, %r8 1733a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik BRANCH_TO_JMPTBL_ENTRY (L(FillTable), %r8, 4) 1734a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1735a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik/* end of ifndef USE_AS_STRCAT */ 1736a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1737a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1738a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 1739a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(UnalignedLeaveCase2OrCase3): 1740a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik test %rdx, %rdx 1741a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jnz L(Unaligned64LeaveCase2) 1742a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(Unaligned64LeaveCase3): 1743a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 64(%r8), %rcx 1744a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik and $-16, %rcx 1745a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik add $48, %r8 1746a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jl L(CopyFrom1To16BytesCase3) 1747a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm4, (%rdi) 1748a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik sub $16, %r8 1749a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jb L(CopyFrom1To16BytesCase3) 1750a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm5, 16(%rdi) 1751a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik sub $16, %r8 1752a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jb L(CopyFrom1To16BytesCase3) 1753a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm6, 32(%rdi) 1754a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik sub $16, %r8 1755a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jb L(CopyFrom1To16BytesCase3) 1756a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm7, 48(%rdi) 1757a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STPCPY 1758a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 64(%rdi), %rax 1759a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1760a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STRCAT 1761a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik xor %ch, %ch 1762a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movb %ch, 64(%rdi) 1763a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1764a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 1765a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1766a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 1767a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(Unaligned64LeaveCase2): 1768a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik xor %rcx, %rcx 1769a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik pcmpeqb %xmm4, %xmm0 1770a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik pmovmskb %xmm0, %rdx 1771a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik add $48, %r8 1772a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jle L(CopyFrom1To16BytesCase2OrCase3) 1773a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik test %rdx, %rdx 1774a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifndef USE_AS_STRCAT 1775a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jnz L(CopyFrom1To16BytesUnalignedXmm4) 1776a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#else 1777a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jnz L(CopyFrom1To16Bytes) 1778a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1779a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik pcmpeqb %xmm5, %xmm0 1780a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik pmovmskb %xmm0, %rdx 1781a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm4, (%rdi) 1782a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik add $16, %rcx 1783a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik sub $16, %r8 1784a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jbe L(CopyFrom1To16BytesCase2OrCase3) 1785a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik test %rdx, %rdx 1786a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifndef USE_AS_STRCAT 1787a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jnz L(CopyFrom1To16BytesUnalignedXmm5) 1788a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#else 1789a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jnz L(CopyFrom1To16Bytes) 1790a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1791a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1792a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik pcmpeqb %xmm6, %xmm0 1793a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik pmovmskb %xmm0, %rdx 1794a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm5, 16(%rdi) 1795a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik add $16, %rcx 1796a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik sub $16, %r8 1797a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jbe L(CopyFrom1To16BytesCase2OrCase3) 1798a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik test %rdx, %rdx 1799a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifndef USE_AS_STRCAT 1800a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jnz L(CopyFrom1To16BytesUnalignedXmm6) 1801a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#else 1802a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jnz L(CopyFrom1To16Bytes) 1803a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1804a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1805a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik pcmpeqb %xmm7, %xmm0 1806a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik pmovmskb %xmm0, %rdx 1807a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik movdqu %xmm6, 32(%rdi) 1808a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 16(%rdi, %rcx), %rdi 1809a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik lea 16(%rsi, %rcx), %rsi 1810a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik bsf %rdx, %rdx 1811a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik cmp %r8, %rdx 1812a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik jb L(CopyFrom1To16BytesExit) 1813a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik BRANCH_TO_JMPTBL_ENTRY (L(ExitStrncpyTable), %r8, 4) 1814a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1815a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 1816a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(ExitZero): 1817a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifndef USE_AS_STRCAT 1818a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik mov %rdi, %rax 1819a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1820a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik RETURN 1821a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1822a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1823a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik 1824a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifndef USE_AS_STRCAT 1825a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikEND (STRCPY) 1826a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#else 1827a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikEND (STRCAT) 1828a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1829a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 1830a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .section .rodata 1831a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(ExitTable): 1832a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(Exit1), L(ExitTable)) 1833a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(Exit2), L(ExitTable)) 1834a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(Exit3), L(ExitTable)) 1835a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(Exit4), L(ExitTable)) 1836a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(Exit5), L(ExitTable)) 1837a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(Exit6), L(ExitTable)) 1838a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(Exit7), L(ExitTable)) 1839a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(Exit8), L(ExitTable)) 1840a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(Exit9), L(ExitTable)) 1841a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(Exit10), L(ExitTable)) 1842a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(Exit11), L(ExitTable)) 1843a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(Exit12), L(ExitTable)) 1844a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(Exit13), L(ExitTable)) 1845a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(Exit14), L(ExitTable)) 1846a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(Exit15), L(ExitTable)) 1847a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(Exit16), L(ExitTable)) 1848a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(Exit17), L(ExitTable)) 1849a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(Exit18), L(ExitTable)) 1850a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(Exit19), L(ExitTable)) 1851a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(Exit20), L(ExitTable)) 1852a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(Exit21), L(ExitTable)) 1853a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(Exit22), L(ExitTable)) 1854a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(Exit23), L(ExitTable)) 1855a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(Exit24), L(ExitTable)) 1856a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(Exit25), L(ExitTable)) 1857a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(Exit26), L(ExitTable)) 1858a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(Exit27), L(ExitTable)) 1859a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(Exit28), L(ExitTable)) 1860a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(Exit29), L(ExitTable)) 1861a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(Exit30), L(ExitTable)) 1862a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(Exit31), L(ExitTable)) 1863a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(Exit32), L(ExitTable)) 1864a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#ifdef USE_AS_STRNCPY 1865a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(ExitStrncpyTable): 1866a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(StrncpyExit0), L(ExitStrncpyTable)) 1867a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(StrncpyExit1), L(ExitStrncpyTable)) 1868a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(StrncpyExit2), L(ExitStrncpyTable)) 1869a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(StrncpyExit3), L(ExitStrncpyTable)) 1870a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(StrncpyExit4), L(ExitStrncpyTable)) 1871a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(StrncpyExit5), L(ExitStrncpyTable)) 1872a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(StrncpyExit6), L(ExitStrncpyTable)) 1873a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(StrncpyExit7), L(ExitStrncpyTable)) 1874a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(StrncpyExit8), L(ExitStrncpyTable)) 1875a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(StrncpyExit9), L(ExitStrncpyTable)) 1876a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(StrncpyExit10), L(ExitStrncpyTable)) 1877a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(StrncpyExit11), L(ExitStrncpyTable)) 1878a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(StrncpyExit12), L(ExitStrncpyTable)) 1879a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(StrncpyExit13), L(ExitStrncpyTable)) 1880a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(StrncpyExit14), L(ExitStrncpyTable)) 1881a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(StrncpyExit15), L(ExitStrncpyTable)) 1882a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(StrncpyExit16), L(ExitStrncpyTable)) 1883a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(StrncpyExit17), L(ExitStrncpyTable)) 1884a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(StrncpyExit18), L(ExitStrncpyTable)) 1885a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(StrncpyExit19), L(ExitStrncpyTable)) 1886a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(StrncpyExit20), L(ExitStrncpyTable)) 1887a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(StrncpyExit21), L(ExitStrncpyTable)) 1888a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(StrncpyExit22), L(ExitStrncpyTable)) 1889a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(StrncpyExit23), L(ExitStrncpyTable)) 1890a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(StrncpyExit24), L(ExitStrncpyTable)) 1891a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(StrncpyExit25), L(ExitStrncpyTable)) 1892a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(StrncpyExit26), L(ExitStrncpyTable)) 1893a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(StrncpyExit27), L(ExitStrncpyTable)) 1894a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(StrncpyExit28), L(ExitStrncpyTable)) 1895a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(StrncpyExit29), L(ExitStrncpyTable)) 1896a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(StrncpyExit30), L(ExitStrncpyTable)) 1897a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(StrncpyExit31), L(ExitStrncpyTable)) 1898a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(StrncpyExit32), L(ExitStrncpyTable)) 1899a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(StrncpyExit33), L(ExitStrncpyTable)) 1900a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik# ifndef USE_AS_STRCAT 1901a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .p2align 4 1902a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara RainchikL(FillTable): 1903a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(Fill0), L(FillTable)) 1904a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(Fill1), L(FillTable)) 1905a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(Fill2), L(FillTable)) 1906a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(Fill3), L(FillTable)) 1907a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(Fill4), L(FillTable)) 1908a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(Fill5), L(FillTable)) 1909a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(Fill6), L(FillTable)) 1910a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(Fill7), L(FillTable)) 1911a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(Fill8), L(FillTable)) 1912a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(Fill9), L(FillTable)) 1913a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(Fill10), L(FillTable)) 1914a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(Fill11), L(FillTable)) 1915a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(Fill12), L(FillTable)) 1916a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(Fill13), L(FillTable)) 1917a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(Fill14), L(FillTable)) 1918a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(Fill15), L(FillTable)) 1919a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik .int JMPTBL(L(Fill16), L(FillTable)) 1920a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik# endif 1921a020a244ae0a185cd53905ec84093e5e6eb7d88cVarvara Rainchik#endif 1922