10a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva/* 20a490665a3a287cd3aee1e7327f2381222c387c4Liubov DmitrievaCopyright (c) 2011, Intel Corporation 30a490665a3a287cd3aee1e7327f2381222c387c4Liubov DmitrievaAll rights reserved. 40a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 50a490665a3a287cd3aee1e7327f2381222c387c4Liubov DmitrievaRedistribution and use in source and binary forms, with or without 60a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrievamodification, are permitted provided that the following conditions are met: 70a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 80a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva * Redistributions of source code must retain the above copyright notice, 90a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva * this list of conditions and the following disclaimer. 100a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 110a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva * Redistributions in binary form must reproduce the above copyright notice, 120a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva * this list of conditions and the following disclaimer in the documentation 130a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva * and/or other materials provided with the distribution. 140a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 150a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva * Neither the name of Intel Corporation nor the names of its contributors 160a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva * may be used to endorse or promote products derived from this software 170a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva * without specific prior written permission. 180a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 190a490665a3a287cd3aee1e7327f2381222c387c4Liubov DmitrievaTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 200a490665a3a287cd3aee1e7327f2381222c387c4Liubov DmitrievaANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 210a490665a3a287cd3aee1e7327f2381222c387c4Liubov DmitrievaWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 220a490665a3a287cd3aee1e7327f2381222c387c4Liubov DmitrievaDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR 230a490665a3a287cd3aee1e7327f2381222c387c4Liubov DmitrievaANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 240a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 250a490665a3a287cd3aee1e7327f2381222c387c4Liubov DmitrievaLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 260a490665a3a287cd3aee1e7327f2381222c387c4Liubov DmitrievaANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 270a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 280a490665a3a287cd3aee1e7327f2381222c387c4Liubov DmitrievaSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 290a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva*/ 300a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 310a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva#ifndef USE_AS_WCSCAT 320a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 330a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva# ifndef L 340a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva# define L(label) .L##label 350a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva# endif 360a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 370a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva# ifndef cfi_startproc 380a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva# define cfi_startproc .cfi_startproc 390a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva# endif 400a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 410a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva# ifndef cfi_endproc 420a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva# define cfi_endproc .cfi_endproc 430a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva# endif 440a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 450a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva# ifndef cfi_rel_offset 460a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva# define cfi_rel_offset(reg, off) .cfi_rel_offset reg, off 470a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva# endif 480a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 490a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva# ifndef cfi_restore 500a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva# define cfi_restore(reg) .cfi_restore reg 510a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva# endif 520a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 530a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva# ifndef cfi_adjust_cfa_offset 540a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva# define cfi_adjust_cfa_offset(off) .cfi_adjust_cfa_offset off 550a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva# endif 560a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 570a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva# ifndef ENTRY 580a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva# define ENTRY(name) \ 590a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva .type name, @function; \ 600a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva .globl name; \ 610a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva .p2align 4; \ 620a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrievaname: \ 630a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva cfi_startproc 640a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva# endif 650a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 660a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva# ifndef END 670a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva# define END(name) \ 680a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva cfi_endproc; \ 690a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva .size name, .-name 700a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva# endif 710a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 720a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva# define CFI_PUSH(REG) \ 730a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva cfi_adjust_cfa_offset (4); \ 740a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva cfi_rel_offset (REG, 0) 750a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 760a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva# define CFI_POP(REG) \ 770a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva cfi_adjust_cfa_offset (-4); \ 780a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva cfi_restore (REG) 790a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 800a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva# define PUSH(REG) pushl REG; CFI_PUSH (REG) 810a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva# define POP(REG) popl REG; CFI_POP (REG) 820a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 830a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva# define PARMS 4 840a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva# define RETURN POP (%edi); ret; CFI_PUSH (%edi) 850a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 860a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva# define STR1 PARMS 870a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva# define STR2 STR1+4 880a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva# define LEN STR2+4 890a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 900a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva.text 910a490665a3a287cd3aee1e7327f2381222c387c4Liubov DmitrievaENTRY (wcscpy) 920a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva mov STR1(%esp), %edx 930a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva mov STR2(%esp), %ecx 940a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 95c89ee272fbc2bd2ed244605b8f8c60fa50e9de15Chih-Hung Hsieh cmpl $0, (%ecx) 960a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva jz L(ExitTail4) 97c89ee272fbc2bd2ed244605b8f8c60fa50e9de15Chih-Hung Hsieh cmpl $0, 4(%ecx) 980a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva jz L(ExitTail8) 99c89ee272fbc2bd2ed244605b8f8c60fa50e9de15Chih-Hung Hsieh cmpl $0, 8(%ecx) 1000a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva jz L(ExitTail12) 101c89ee272fbc2bd2ed244605b8f8c60fa50e9de15Chih-Hung Hsieh cmpl $0, 12(%ecx) 1020a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva jz L(ExitTail16) 1030a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 1040a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva PUSH (%edi) 1050a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva mov %edx, %edi 1060a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva#endif 1070a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva PUSH (%esi) 1080a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva lea 16(%ecx), %esi 1090a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 1100a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva and $-16, %esi 1110a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 1120a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva pxor %xmm0, %xmm0 1130a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva pcmpeqd (%esi), %xmm0 1140a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movdqu (%ecx), %xmm1 1150a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movdqu %xmm1, (%edx) 1160a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 1170a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva pmovmskb %xmm0, %eax 1180a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva sub %ecx, %esi 1190a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 1200a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva test %eax, %eax 1210a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva jnz L(CopyFrom1To16Bytes) 1220a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 1230a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva mov %edx, %eax 1240a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva lea 16(%edx), %edx 1250a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva and $-16, %edx 1260a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva sub %edx, %eax 1270a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 1280a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva sub %eax, %ecx 1290a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva mov %ecx, %eax 1300a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva and $0xf, %eax 1310a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva mov $0, %esi 1320a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 1330a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva jz L(Align16Both) 1340a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva cmp $4, %eax 1350a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva je L(Shl4) 1360a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva cmp $8, %eax 1370a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva je L(Shl8) 1380a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva jmp L(Shl12) 1390a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 1400a490665a3a287cd3aee1e7327f2381222c387c4Liubov DmitrievaL(Align16Both): 1410a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps (%ecx), %xmm1 1420a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps 16(%ecx), %xmm2 1430a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps %xmm1, (%edx) 1440a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva pcmpeqd %xmm2, %xmm0 1450a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva pmovmskb %xmm0, %eax 1460a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva lea 16(%esi), %esi 1470a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 1480a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva test %eax, %eax 1490a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva jnz L(CopyFrom1To16Bytes) 1500a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 1510a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps 16(%ecx, %esi), %xmm3 1520a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps %xmm2, (%edx, %esi) 1530a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva pcmpeqd %xmm3, %xmm0 1540a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva pmovmskb %xmm0, %eax 1550a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva lea 16(%esi), %esi 1560a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 1570a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva test %eax, %eax 1580a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva jnz L(CopyFrom1To16Bytes) 1590a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 1600a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps 16(%ecx, %esi), %xmm4 1610a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps %xmm3, (%edx, %esi) 1620a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva pcmpeqd %xmm4, %xmm0 1630a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva pmovmskb %xmm0, %eax 1640a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva lea 16(%esi), %esi 1650a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 1660a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva test %eax, %eax 1670a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva jnz L(CopyFrom1To16Bytes) 1680a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 1690a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps 16(%ecx, %esi), %xmm1 1700a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps %xmm4, (%edx, %esi) 1710a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva pcmpeqd %xmm1, %xmm0 1720a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva pmovmskb %xmm0, %eax 1730a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva lea 16(%esi), %esi 1740a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 1750a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva test %eax, %eax 1760a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva jnz L(CopyFrom1To16Bytes) 1770a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 1780a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps 16(%ecx, %esi), %xmm2 1790a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps %xmm1, (%edx, %esi) 1800a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva pcmpeqd %xmm2, %xmm0 1810a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva pmovmskb %xmm0, %eax 1820a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva lea 16(%esi), %esi 1830a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 1840a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva test %eax, %eax 1850a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva jnz L(CopyFrom1To16Bytes) 1860a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 1870a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps 16(%ecx, %esi), %xmm3 1880a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps %xmm2, (%edx, %esi) 1890a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva pcmpeqd %xmm3, %xmm0 1900a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva pmovmskb %xmm0, %eax 1910a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva lea 16(%esi), %esi 1920a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 1930a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva test %eax, %eax 1940a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva jnz L(CopyFrom1To16Bytes) 1950a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 1960a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps %xmm3, (%edx, %esi) 1970a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva mov %ecx, %eax 1980a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva lea 16(%ecx, %esi), %ecx 1990a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva and $-0x40, %ecx 2000a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva sub %ecx, %eax 2010a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva sub %eax, %edx 2020a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 2030a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva mov $-0x40, %esi 2040a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 2050a490665a3a287cd3aee1e7327f2381222c387c4Liubov DmitrievaL(Aligned64Loop): 2060a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps (%ecx), %xmm2 2070a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps 32(%ecx), %xmm3 2080a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps %xmm2, %xmm4 2090a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps 16(%ecx), %xmm5 2100a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps %xmm3, %xmm6 2110a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps 48(%ecx), %xmm7 2120a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva pminub %xmm5, %xmm2 2130a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva pminub %xmm7, %xmm3 2140a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva pminub %xmm2, %xmm3 2150a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva lea 64(%edx), %edx 2160a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva pcmpeqd %xmm0, %xmm3 2170a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva lea 64(%ecx), %ecx 2180a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva pmovmskb %xmm3, %eax 2190a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 2200a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva test %eax, %eax 2210a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva jnz L(Aligned64Leave) 2220a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps %xmm4, -64(%edx) 2230a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps %xmm5, -48(%edx) 2240a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps %xmm6, -32(%edx) 2250a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps %xmm7, -16(%edx) 2260a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva jmp L(Aligned64Loop) 2270a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 2280a490665a3a287cd3aee1e7327f2381222c387c4Liubov DmitrievaL(Aligned64Leave): 2290a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva pcmpeqd %xmm4, %xmm0 2300a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva pmovmskb %xmm0, %eax 2310a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva test %eax, %eax 2320a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva jnz L(CopyFrom1To16Bytes) 2330a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 2340a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva pcmpeqd %xmm5, %xmm0 2350a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva pmovmskb %xmm0, %eax 2360a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps %xmm4, -64(%edx) 2370a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva lea 16(%esi), %esi 2380a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva test %eax, %eax 2390a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva jnz L(CopyFrom1To16Bytes) 2400a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 2410a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva pcmpeqd %xmm6, %xmm0 2420a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva pmovmskb %xmm0, %eax 2430a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps %xmm5, -48(%edx) 2440a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva lea 16(%esi), %esi 2450a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva test %eax, %eax 2460a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva jnz L(CopyFrom1To16Bytes) 2470a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 2480a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps %xmm6, -32(%edx) 2490a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva pcmpeqd %xmm7, %xmm0 2500a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva pmovmskb %xmm0, %eax 2510a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva lea 16(%esi), %esi 2520a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva test %eax, %eax 2530a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva jnz L(CopyFrom1To16Bytes) 2540a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 2550a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva mov $-0x40, %esi 2560a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps %xmm7, -16(%edx) 2570a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva jmp L(Aligned64Loop) 2580a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 2590a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva .p2align 4 2600a490665a3a287cd3aee1e7327f2381222c387c4Liubov DmitrievaL(Shl4): 2610a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps -4(%ecx), %xmm1 2620a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps 12(%ecx), %xmm2 2630a490665a3a287cd3aee1e7327f2381222c387c4Liubov DmitrievaL(Shl4Start): 2640a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva pcmpeqd %xmm2, %xmm0 2650a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva pmovmskb %xmm0, %eax 2660a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps %xmm2, %xmm3 2670a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 2680a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva test %eax, %eax 2690a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva jnz L(Shl4LoopExit) 2700a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 2710a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva palignr $4, %xmm1, %xmm2 2720a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps %xmm2, (%edx) 2730a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps 28(%ecx), %xmm2 2740a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 2750a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva pcmpeqd %xmm2, %xmm0 2760a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva lea 16(%edx), %edx 2770a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva pmovmskb %xmm0, %eax 2780a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva lea 16(%ecx), %ecx 2790a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps %xmm2, %xmm1 2800a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 2810a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva test %eax, %eax 2820a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva jnz L(Shl4LoopExit) 2830a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 2840a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva palignr $4, %xmm3, %xmm2 2850a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps %xmm2, (%edx) 2860a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps 28(%ecx), %xmm2 2870a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 2880a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva pcmpeqd %xmm2, %xmm0 2890a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva lea 16(%edx), %edx 2900a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva pmovmskb %xmm0, %eax 2910a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva lea 16(%ecx), %ecx 2920a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps %xmm2, %xmm3 2930a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 2940a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva test %eax, %eax 2950a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva jnz L(Shl4LoopExit) 2960a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 2970a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva palignr $4, %xmm1, %xmm2 2980a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps %xmm2, (%edx) 2990a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps 28(%ecx), %xmm2 3000a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 3010a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva pcmpeqd %xmm2, %xmm0 3020a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva lea 16(%edx), %edx 3030a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva pmovmskb %xmm0, %eax 3040a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva lea 16(%ecx), %ecx 3050a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 3060a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva test %eax, %eax 3070a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva jnz L(Shl4LoopExit) 3080a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 3090a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva palignr $4, %xmm3, %xmm2 3100a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps %xmm2, (%edx) 3110a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva lea 28(%ecx), %ecx 3120a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva lea 16(%edx), %edx 3130a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 3140a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva mov %ecx, %eax 3150a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva and $-0x40, %ecx 3160a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva sub %ecx, %eax 3170a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva lea -12(%ecx), %ecx 3180a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva sub %eax, %edx 3190a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 3200a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps -4(%ecx), %xmm1 3210a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 3220a490665a3a287cd3aee1e7327f2381222c387c4Liubov DmitrievaL(Shl4LoopStart): 3230a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps 12(%ecx), %xmm2 3240a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps 28(%ecx), %xmm3 3250a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps %xmm3, %xmm6 3260a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps 44(%ecx), %xmm4 3270a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps %xmm4, %xmm7 3280a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps 60(%ecx), %xmm5 3290a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva pminub %xmm2, %xmm6 3300a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva pminub %xmm5, %xmm7 3310a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva pminub %xmm6, %xmm7 3320a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva pcmpeqd %xmm0, %xmm7 3330a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva pmovmskb %xmm7, %eax 3340a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps %xmm5, %xmm7 3350a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva palignr $4, %xmm4, %xmm5 3360a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva palignr $4, %xmm3, %xmm4 3370a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva test %eax, %eax 3380a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva jnz L(Shl4Start) 3390a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 3400a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva palignr $4, %xmm2, %xmm3 3410a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva lea 64(%ecx), %ecx 3420a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva palignr $4, %xmm1, %xmm2 3430a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps %xmm7, %xmm1 3440a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps %xmm5, 48(%edx) 3450a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps %xmm4, 32(%edx) 3460a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps %xmm3, 16(%edx) 3470a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps %xmm2, (%edx) 3480a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva lea 64(%edx), %edx 3490a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva jmp L(Shl4LoopStart) 3500a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 3510a490665a3a287cd3aee1e7327f2381222c387c4Liubov DmitrievaL(Shl4LoopExit): 3520a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movlpd (%ecx), %xmm0 3530a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movl 8(%ecx), %esi 3540a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movlpd %xmm0, (%edx) 3550a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movl %esi, 8(%edx) 3560a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva POP (%esi) 3570a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva add $12, %edx 3580a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva add $12, %ecx 3590a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva test %al, %al 3600a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva jz L(ExitHigh) 3610a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva test $0x01, %al 3620a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva jnz L(Exit4) 3630a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movlpd (%ecx), %xmm0 3640a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movlpd %xmm0, (%edx) 3650a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movl %edi, %eax 3660a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva RETURN 3670a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 3680a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva CFI_PUSH (%esi) 3690a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 3700a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva .p2align 4 3710a490665a3a287cd3aee1e7327f2381222c387c4Liubov DmitrievaL(Shl8): 3720a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps -8(%ecx), %xmm1 3730a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps 8(%ecx), %xmm2 3740a490665a3a287cd3aee1e7327f2381222c387c4Liubov DmitrievaL(Shl8Start): 3750a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva pcmpeqd %xmm2, %xmm0 3760a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva pmovmskb %xmm0, %eax 3770a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps %xmm2, %xmm3 3780a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 3790a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva test %eax, %eax 3800a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva jnz L(Shl8LoopExit) 3810a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 3820a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva palignr $8, %xmm1, %xmm2 3830a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps %xmm2, (%edx) 3840a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps 24(%ecx), %xmm2 3850a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 3860a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva pcmpeqd %xmm2, %xmm0 3870a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva lea 16(%edx), %edx 3880a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva pmovmskb %xmm0, %eax 3890a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva lea 16(%ecx), %ecx 3900a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps %xmm2, %xmm1 3910a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 3920a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva test %eax, %eax 3930a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva jnz L(Shl8LoopExit) 3940a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 3950a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva palignr $8, %xmm3, %xmm2 3960a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps %xmm2, (%edx) 3970a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps 24(%ecx), %xmm2 3980a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 3990a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva pcmpeqd %xmm2, %xmm0 4000a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva lea 16(%edx), %edx 4010a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva pmovmskb %xmm0, %eax 4020a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva lea 16(%ecx), %ecx 4030a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps %xmm2, %xmm3 4040a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 4050a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva test %eax, %eax 4060a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva jnz L(Shl8LoopExit) 4070a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 4080a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva palignr $8, %xmm1, %xmm2 4090a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps %xmm2, (%edx) 4100a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps 24(%ecx), %xmm2 4110a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 4120a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva pcmpeqd %xmm2, %xmm0 4130a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva lea 16(%edx), %edx 4140a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva pmovmskb %xmm0, %eax 4150a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva lea 16(%ecx), %ecx 4160a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 4170a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva test %eax, %eax 4180a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva jnz L(Shl8LoopExit) 4190a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 4200a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva palignr $8, %xmm3, %xmm2 4210a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps %xmm2, (%edx) 4220a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva lea 24(%ecx), %ecx 4230a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva lea 16(%edx), %edx 4240a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 4250a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva mov %ecx, %eax 4260a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva and $-0x40, %ecx 4270a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva sub %ecx, %eax 4280a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva lea -8(%ecx), %ecx 4290a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva sub %eax, %edx 4300a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 4310a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps -8(%ecx), %xmm1 4320a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 4330a490665a3a287cd3aee1e7327f2381222c387c4Liubov DmitrievaL(Shl8LoopStart): 4340a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps 8(%ecx), %xmm2 4350a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps 24(%ecx), %xmm3 4360a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps %xmm3, %xmm6 4370a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps 40(%ecx), %xmm4 4380a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps %xmm4, %xmm7 4390a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps 56(%ecx), %xmm5 4400a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva pminub %xmm2, %xmm6 4410a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva pminub %xmm5, %xmm7 4420a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva pminub %xmm6, %xmm7 4430a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva pcmpeqd %xmm0, %xmm7 4440a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva pmovmskb %xmm7, %eax 4450a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps %xmm5, %xmm7 4460a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva palignr $8, %xmm4, %xmm5 4470a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva palignr $8, %xmm3, %xmm4 4480a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva test %eax, %eax 4490a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva jnz L(Shl8Start) 4500a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 4510a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva palignr $8, %xmm2, %xmm3 4520a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva lea 64(%ecx), %ecx 4530a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva palignr $8, %xmm1, %xmm2 4540a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps %xmm7, %xmm1 4550a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps %xmm5, 48(%edx) 4560a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps %xmm4, 32(%edx) 4570a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps %xmm3, 16(%edx) 4580a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps %xmm2, (%edx) 4590a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva lea 64(%edx), %edx 4600a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva jmp L(Shl8LoopStart) 4610a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 4620a490665a3a287cd3aee1e7327f2381222c387c4Liubov DmitrievaL(Shl8LoopExit): 4630a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movlpd (%ecx), %xmm0 4640a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movlpd %xmm0, (%edx) 4650a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva POP (%esi) 4660a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva add $8, %edx 4670a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva add $8, %ecx 4680a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva test %al, %al 4690a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva jz L(ExitHigh) 4700a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva test $0x01, %al 4710a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva jnz L(Exit4) 4720a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movlpd (%ecx), %xmm0 4730a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movlpd %xmm0, (%edx) 4740a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movl %edi, %eax 4750a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva RETURN 4760a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 4770a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva CFI_PUSH (%esi) 4780a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 4790a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva .p2align 4 4800a490665a3a287cd3aee1e7327f2381222c387c4Liubov DmitrievaL(Shl12): 4810a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps -12(%ecx), %xmm1 4820a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps 4(%ecx), %xmm2 4830a490665a3a287cd3aee1e7327f2381222c387c4Liubov DmitrievaL(Shl12Start): 4840a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva pcmpeqd %xmm2, %xmm0 4850a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva pmovmskb %xmm0, %eax 4860a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps %xmm2, %xmm3 4870a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 4880a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva test %eax, %eax 4890a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva jnz L(Shl12LoopExit) 4900a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 4910a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva palignr $12, %xmm1, %xmm2 4920a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps %xmm2, (%edx) 4930a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps 20(%ecx), %xmm2 4940a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 4950a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva pcmpeqd %xmm2, %xmm0 4960a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva lea 16(%edx), %edx 4970a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva pmovmskb %xmm0, %eax 4980a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva lea 16(%ecx), %ecx 4990a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps %xmm2, %xmm1 5000a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 5010a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva test %eax, %eax 5020a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva jnz L(Shl12LoopExit) 5030a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 5040a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva palignr $12, %xmm3, %xmm2 5050a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps %xmm2, (%edx) 5060a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps 20(%ecx), %xmm2 5070a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 5080a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva pcmpeqd %xmm2, %xmm0 5090a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva lea 16(%edx), %edx 5100a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva pmovmskb %xmm0, %eax 5110a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva lea 16(%ecx), %ecx 5120a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps %xmm2, %xmm3 5130a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 5140a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva test %eax, %eax 5150a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva jnz L(Shl12LoopExit) 5160a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 5170a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva palignr $12, %xmm1, %xmm2 5180a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps %xmm2, (%edx) 5190a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps 20(%ecx), %xmm2 5200a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 5210a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva pcmpeqd %xmm2, %xmm0 5220a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva lea 16(%edx), %edx 5230a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva pmovmskb %xmm0, %eax 5240a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva lea 16(%ecx), %ecx 5250a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 5260a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva test %eax, %eax 5270a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva jnz L(Shl12LoopExit) 5280a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 5290a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva palignr $12, %xmm3, %xmm2 5300a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps %xmm2, (%edx) 5310a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva lea 20(%ecx), %ecx 5320a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva lea 16(%edx), %edx 5330a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 5340a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva mov %ecx, %eax 5350a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva and $-0x40, %ecx 5360a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva sub %ecx, %eax 5370a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva lea -4(%ecx), %ecx 5380a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva sub %eax, %edx 5390a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 5400a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps -12(%ecx), %xmm1 5410a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 5420a490665a3a287cd3aee1e7327f2381222c387c4Liubov DmitrievaL(Shl12LoopStart): 5430a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps 4(%ecx), %xmm2 5440a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps 20(%ecx), %xmm3 5450a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps %xmm3, %xmm6 5460a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps 36(%ecx), %xmm4 5470a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps %xmm4, %xmm7 5480a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps 52(%ecx), %xmm5 5490a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva pminub %xmm2, %xmm6 5500a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva pminub %xmm5, %xmm7 5510a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva pminub %xmm6, %xmm7 5520a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva pcmpeqd %xmm0, %xmm7 5530a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva pmovmskb %xmm7, %eax 5540a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps %xmm5, %xmm7 5550a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva palignr $12, %xmm4, %xmm5 5560a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva palignr $12, %xmm3, %xmm4 5570a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva test %eax, %eax 5580a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva jnz L(Shl12Start) 5590a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 5600a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva palignr $12, %xmm2, %xmm3 5610a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva lea 64(%ecx), %ecx 5620a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva palignr $12, %xmm1, %xmm2 5630a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps %xmm7, %xmm1 5640a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps %xmm5, 48(%edx) 5650a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps %xmm4, 32(%edx) 5660a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps %xmm3, 16(%edx) 5670a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movaps %xmm2, (%edx) 5680a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva lea 64(%edx), %edx 5690a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva jmp L(Shl12LoopStart) 5700a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 5710a490665a3a287cd3aee1e7327f2381222c387c4Liubov DmitrievaL(Shl12LoopExit): 5720a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movl (%ecx), %esi 5730a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movl %esi, (%edx) 5740a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva mov $4, %esi 5750a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 5760a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva .p2align 4 5770a490665a3a287cd3aee1e7327f2381222c387c4Liubov DmitrievaL(CopyFrom1To16Bytes): 5780a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva add %esi, %edx 5790a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva add %esi, %ecx 5800a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 5810a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva POP (%esi) 5820a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva test %al, %al 5830a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva jz L(ExitHigh) 5840a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva test $0x01, %al 5850a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva jnz L(Exit4) 5860a490665a3a287cd3aee1e7327f2381222c387c4Liubov DmitrievaL(Exit8): 5870a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movlpd (%ecx), %xmm0 5880a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movlpd %xmm0, (%edx) 5890a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movl %edi, %eax 5900a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva RETURN 5910a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 5920a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva .p2align 4 5930a490665a3a287cd3aee1e7327f2381222c387c4Liubov DmitrievaL(ExitHigh): 5940a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva test $0x01, %ah 5950a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva jnz L(Exit12) 5960a490665a3a287cd3aee1e7327f2381222c387c4Liubov DmitrievaL(Exit16): 5970a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movdqu (%ecx), %xmm0 5980a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movdqu %xmm0, (%edx) 5990a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movl %edi, %eax 6000a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva RETURN 6010a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 6020a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva .p2align 4 6030a490665a3a287cd3aee1e7327f2381222c387c4Liubov DmitrievaL(Exit4): 6040a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movl (%ecx), %eax 6050a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movl %eax, (%edx) 6060a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movl %edi, %eax 6070a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva RETURN 6080a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 6090a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva .p2align 4 6100a490665a3a287cd3aee1e7327f2381222c387c4Liubov DmitrievaL(Exit12): 6110a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movlpd (%ecx), %xmm0 6120a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movlpd %xmm0, (%edx) 6130a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movl 8(%ecx), %eax 6140a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movl %eax, 8(%edx) 6150a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movl %edi, %eax 6160a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva RETURN 6170a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 6180a490665a3a287cd3aee1e7327f2381222c387c4Liubov DmitrievaCFI_POP (%edi) 6190a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 6200a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva .p2align 4 6210a490665a3a287cd3aee1e7327f2381222c387c4Liubov DmitrievaL(ExitTail4): 6220a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movl (%ecx), %eax 6230a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movl %eax, (%edx) 6240a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movl %edx, %eax 6250a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva ret 6260a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 6270a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva .p2align 4 6280a490665a3a287cd3aee1e7327f2381222c387c4Liubov DmitrievaL(ExitTail8): 6290a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movlpd (%ecx), %xmm0 6300a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movlpd %xmm0, (%edx) 6310a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movl %edx, %eax 6320a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva ret 6330a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 6340a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva .p2align 4 6350a490665a3a287cd3aee1e7327f2381222c387c4Liubov DmitrievaL(ExitTail12): 6360a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movlpd (%ecx), %xmm0 6370a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movlpd %xmm0, (%edx) 6380a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movl 8(%ecx), %eax 6390a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movl %eax, 8(%edx) 6400a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movl %edx, %eax 6410a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva ret 6420a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 6430a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva .p2align 4 6440a490665a3a287cd3aee1e7327f2381222c387c4Liubov DmitrievaL(ExitTail16): 6450a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movdqu (%ecx), %xmm0 6460a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movdqu %xmm0, (%edx) 6470a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva movl %edx, %eax 6480a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva ret 6490a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva 6500a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva#ifndef USE_AS_WCSCAT 6510a490665a3a287cd3aee1e7327f2381222c387c4Liubov DmitrievaEND (wcscpy) 6520a490665a3a287cd3aee1e7327f2381222c387c4Liubov Dmitrieva#endif 653