1bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu/* 2bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu * Copyright (C) 2010 The Android Open Source Project 3bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu * 4bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu * Licensed under the Apache License, Version 2.0 (the "License"); 5bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu * you may not use this file except in compliance with the License. 6bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu * You may obtain a copy of the License at 7bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu * 8bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu * http://www.apache.org/licenses/LICENSE-2.0 9bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu * 10bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu * Unless required by applicable law or agreed to in writing, software 11bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu * distributed under the License is distributed on an "AS IS" BASIS, 12bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu * See the License for the specific language governing permissions and 14bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu * limitations under the License. 15bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu */ 16bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu/* 17bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu * Contributed by: Intel Corporation 18bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu */ 19bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 20bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu#ifndef L 21bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu# define L(label) .L##label 22bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu#endif 23bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 24bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu#ifndef ALIGN 25bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu# define ALIGN(n) .p2align n 26bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu#endif 27bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 28bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu#ifndef cfi_startproc 29bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu# define cfi_startproc .cfi_startproc 30bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu#endif 31bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 32bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu#ifndef cfi_endproc 33bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu# define cfi_endproc .cfi_endproc 34bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu#endif 35bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 36bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu#ifndef cfi_rel_offset 37bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu# define cfi_rel_offset(reg, off) .cfi_rel_offset reg, off 38bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu#endif 39bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 40bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu#ifndef cfi_restore 41bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu# define cfi_restore(reg) .cfi_restore reg 42bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu#endif 43bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 44bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu#ifndef cfi_adjust_cfa_offset 45bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu# define cfi_adjust_cfa_offset(off) .cfi_adjust_cfa_offset off 46bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu#endif 47bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 48bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu#ifndef ENTRY 49bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu# define ENTRY(name) \ 50bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .type name, @function; \ 51bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .globl name; \ 52bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .p2align 4; \ 53bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiuname: \ 54bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu cfi_startproc 55bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu#endif 56bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 57bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu#ifndef END 58bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu# define END(name) \ 59bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu cfi_endproc; \ 60bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .size name, .-name 61bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu#endif 62bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 63bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu#define CFI_PUSH(REG) \ 64bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu cfi_adjust_cfa_offset (4); \ 65bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu cfi_rel_offset (REG, 0) 66bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 67bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu#define CFI_POP(REG) \ 68bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu cfi_adjust_cfa_offset (-4); \ 69bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu cfi_restore (REG) 70bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 71bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu#define PUSH(REG) pushl REG; CFI_PUSH (REG) 72bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu#define POP(REG) popl REG; CFI_POP (REG) 73bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 74bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu#ifdef USE_AS_BZERO16 75bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu# define DEST PARMS 76bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu# define LEN DEST+4 77bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu#else 78bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu# define DEST PARMS 79bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu# define CHR DEST+4 80bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu# define LEN CHR+4 81bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu#endif 82bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 83bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu#if 1 84bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu# define SETRTNVAL 85bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu#else 86bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu# define SETRTNVAL movl DEST(%esp), %eax 87bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu#endif 88bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 899ff8767bc6c1a0eae1fe9db1a2d6bd75c32988a3Pavel Chupin#if (defined SHARED || defined __PIC__) 90bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu# define ENTRANCE PUSH (%ebx); 91bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu# define RETURN_END POP (%ebx); ret 92bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu# define RETURN RETURN_END; CFI_PUSH (%ebx) 93bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu# define PARMS 8 /* Preserve EBX. */ 94bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu# define JMPTBL(I, B) I - B 95bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 96bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu/* Load an entry in a jump table into EBX and branch to it. TABLE is a 97bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu jump table with relative offsets. */ 98bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu# define BRANCH_TO_JMPTBL_ENTRY(TABLE) \ 99bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu /* We first load PC into EBX. */ \ 100bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu call __i686.get_pc_thunk.bx; \ 101bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu /* Get the address of the jump table. */ \ 102bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu add $(TABLE - .), %ebx; \ 103bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu /* Get the entry and convert the relative offset to the \ 104bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu absolute address. */ \ 105bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu add (%ebx,%ecx,4), %ebx; \ 106bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu /* We loaded the jump table and adjuested EDX. Go. */ \ 107bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu jmp *%ebx 108bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 109bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .section .gnu.linkonce.t.__i686.get_pc_thunk.bx,"ax",@progbits 110bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .globl __i686.get_pc_thunk.bx 111bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .hidden __i686.get_pc_thunk.bx 112bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu ALIGN (4) 113bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .type __i686.get_pc_thunk.bx,@function 114bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu__i686.get_pc_thunk.bx: 115bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl (%esp), %ebx 116bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu ret 117bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu#else 118bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu# define ENTRANCE 119bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu# define RETURN_END ret 120bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu# define RETURN RETURN_END 121bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu# define PARMS 4 122bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu# define JMPTBL(I, B) I 123bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 124bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu/* Branch to an entry in a jump table. TABLE is a jump table with 125bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu absolute offsets. */ 126bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu# define BRANCH_TO_JMPTBL_ENTRY(TABLE) \ 127bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu jmp *TABLE(,%ecx,4) 128bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu#endif 129bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 130bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .section .text.sse2,"ax",@progbits 131bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu ALIGN (4) 132bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuENTRY (sse2_memset16_atom) 133bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu ENTRANCE 134bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 135bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl LEN(%esp), %ecx 136bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu#ifdef USE_AS_ANDROID 137bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu shr $1, %ecx 138bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu#endif 139bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu#ifdef USE_AS_BZERO16 140bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu xor %eax, %eax 141bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu#else 142bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movzwl CHR(%esp), %eax 143bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu mov %eax, %edx 144bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu shl $16, %eax 145bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu or %edx, %eax 146bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu#endif 147bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl DEST(%esp), %edx 148bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu cmp $32, %ecx 149bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu jae L(32wordsormore) 150bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 151bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(write_less32words): 152bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu lea (%edx, %ecx, 2), %edx 153bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu BRANCH_TO_JMPTBL_ENTRY (L(table_less32words)) 154bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 155bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 156bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .pushsection .rodata.sse2,"a",@progbits 157bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu ALIGN (2) 158bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(table_less32words): 159bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(write_0words), L(table_less32words)) 160bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(write_1words), L(table_less32words)) 161bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(write_2words), L(table_less32words)) 162bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(write_3words), L(table_less32words)) 163bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(write_4words), L(table_less32words)) 164bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(write_5words), L(table_less32words)) 165bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(write_6words), L(table_less32words)) 166bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(write_7words), L(table_less32words)) 167bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(write_8words), L(table_less32words)) 168bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(write_9words), L(table_less32words)) 169bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(write_10words), L(table_less32words)) 170bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(write_11words), L(table_less32words)) 171bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(write_12words), L(table_less32words)) 172bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(write_13words), L(table_less32words)) 173bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(write_14words), L(table_less32words)) 174bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(write_15words), L(table_less32words)) 175bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(write_16words), L(table_less32words)) 176bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(write_17words), L(table_less32words)) 177bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(write_18words), L(table_less32words)) 178bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(write_19words), L(table_less32words)) 179bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(write_20words), L(table_less32words)) 180bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(write_21words), L(table_less32words)) 181bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(write_22words), L(table_less32words)) 182bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(write_23words), L(table_less32words)) 183bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(write_24words), L(table_less32words)) 184bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(write_25words), L(table_less32words)) 185bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(write_26words), L(table_less32words)) 186bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(write_27words), L(table_less32words)) 187bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(write_28words), L(table_less32words)) 188bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(write_29words), L(table_less32words)) 189bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(write_30words), L(table_less32words)) 190bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(write_31words), L(table_less32words)) 191bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .popsection 192bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 193bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu ALIGN (4) 194bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(write_28words): 195bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -56(%edx) 196bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -52(%edx) 197bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(write_24words): 198bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -48(%edx) 199bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -44(%edx) 200bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(write_20words): 201bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -40(%edx) 202bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -36(%edx) 203bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(write_16words): 204bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -32(%edx) 205bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -28(%edx) 206bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(write_12words): 207bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -24(%edx) 208bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -20(%edx) 209bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(write_8words): 210bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -16(%edx) 211bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -12(%edx) 212bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(write_4words): 213bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -8(%edx) 214bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -4(%edx) 215bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(write_0words): 216bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu SETRTNVAL 217bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu RETURN 218bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 219bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu ALIGN (4) 220bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(write_29words): 221bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -58(%edx) 222bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -54(%edx) 223bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(write_25words): 224bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -50(%edx) 225bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -46(%edx) 226bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(write_21words): 227bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -42(%edx) 228bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -38(%edx) 229bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(write_17words): 230bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -34(%edx) 231bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -30(%edx) 232bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(write_13words): 233bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -26(%edx) 234bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -22(%edx) 235bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(write_9words): 236bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -18(%edx) 237bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -14(%edx) 238bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(write_5words): 239bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -10(%edx) 240bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -6(%edx) 241bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(write_1words): 242bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu mov %ax, -2(%edx) 243bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu SETRTNVAL 244bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu RETURN 245bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 246bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu ALIGN (4) 247bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(write_30words): 248bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -60(%edx) 249bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -56(%edx) 250bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(write_26words): 251bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -52(%edx) 252bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -48(%edx) 253bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(write_22words): 254bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -44(%edx) 255bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -40(%edx) 256bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(write_18words): 257bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -36(%edx) 258bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -32(%edx) 259bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(write_14words): 260bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -28(%edx) 261bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -24(%edx) 262bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(write_10words): 263bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -20(%edx) 264bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -16(%edx) 265bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(write_6words): 266bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -12(%edx) 267bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -8(%edx) 268bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(write_2words): 269bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -4(%edx) 270bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu SETRTNVAL 271bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu RETURN 272bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 273bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu ALIGN (4) 274bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(write_31words): 275bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -62(%edx) 276bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -58(%edx) 277bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(write_27words): 278bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -54(%edx) 279bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -50(%edx) 280bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(write_23words): 281bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -46(%edx) 282bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -42(%edx) 283bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(write_19words): 284bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -38(%edx) 285bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -34(%edx) 286bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(write_15words): 287bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -30(%edx) 288bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -26(%edx) 289bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(write_11words): 290bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -22(%edx) 291bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -18(%edx) 292bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(write_7words): 293bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -14(%edx) 294bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -10(%edx) 295bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(write_3words): 296bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -6(%edx) 297bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movw %ax, -2(%edx) 298bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu SETRTNVAL 299bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu RETURN 300bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 301bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu ALIGN (4) 302bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 303bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(32wordsormore): 304bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu shl $1, %ecx 305bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu test $0x01, %edx 306bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu jz L(aligned2bytes) 307bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu mov %eax, (%edx) 308bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu mov %eax, -4(%edx, %ecx) 309bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu sub $2, %ecx 310bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu add $1, %edx 311bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu rol $8, %eax 312bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned2bytes): 313bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu#ifdef USE_AS_BZERO16 314bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu pxor %xmm0, %xmm0 315bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu#else 316bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movd %eax, %xmm0 317bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu pshufd $0, %xmm0, %xmm0 318bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu#endif 319bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu testl $0xf, %edx 320bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu jz L(aligned_16) 321bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu/* ECX > 32 and EDX is not 16 byte aligned. */ 322bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(not_aligned_16): 323bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqu %xmm0, (%edx) 324bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %edx, %eax 325bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu and $-16, %edx 326bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu add $16, %edx 327bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu sub %edx, %eax 328bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu add %eax, %ecx 329bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movd %xmm0, %eax 330bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 331bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu ALIGN (4) 332bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16): 333bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu cmp $128, %ecx 334bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu jae L(128bytesormore) 335bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 336bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_less128bytes): 337bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu add %ecx, %edx 338bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu shr $1, %ecx 339bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu BRANCH_TO_JMPTBL_ENTRY (L(table_16_128bytes)) 340bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 341bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu ALIGN (4) 342bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(128bytesormore): 343bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu#ifdef SHARED_CACHE_SIZE 344bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu PUSH (%ebx) 345bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu mov $SHARED_CACHE_SIZE, %ebx 346bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu#else 3479ff8767bc6c1a0eae1fe9db1a2d6bd75c32988a3Pavel Chupin# if (defined SHARED || defined __PIC__) 348bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu call __i686.get_pc_thunk.bx 349bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu add $_GLOBAL_OFFSET_TABLE_, %ebx 350bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu mov __x86_shared_cache_size@GOTOFF(%ebx), %ebx 351bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu# else 352bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu PUSH (%ebx) 353bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu mov __x86_shared_cache_size, %ebx 354bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu# endif 355bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu#endif 356bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu cmp %ebx, %ecx 357bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu jae L(128bytesormore_nt_start) 358bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 359bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 360bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu#ifdef DATA_CACHE_SIZE 361bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu POP (%ebx) 362bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu# define RESTORE_EBX_STATE CFI_PUSH (%ebx) 363bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu cmp $DATA_CACHE_SIZE, %ecx 364bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu#else 3659ff8767bc6c1a0eae1fe9db1a2d6bd75c32988a3Pavel Chupin# if (defined SHARED || defined __PIC__) 366bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu# define RESTORE_EBX_STATE 367bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu call __i686.get_pc_thunk.bx 368bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu add $_GLOBAL_OFFSET_TABLE_, %ebx 369bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu cmp __x86_data_cache_size@GOTOFF(%ebx), %ecx 370bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu# else 371bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu POP (%ebx) 372bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu# define RESTORE_EBX_STATE CFI_PUSH (%ebx) 373bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu cmp __x86_data_cache_size, %ecx 374bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu# endif 375bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu#endif 376bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 377bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu jae L(128bytes_L2_normal) 378bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu subl $128, %ecx 379bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(128bytesormore_normal): 380bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu sub $128, %ecx 381bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, (%edx) 382bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, 0x10(%edx) 383bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, 0x20(%edx) 384bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, 0x30(%edx) 385bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, 0x40(%edx) 386bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, 0x50(%edx) 387bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, 0x60(%edx) 388bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, 0x70(%edx) 389bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu lea 128(%edx), %edx 390bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu jb L(128bytesless_normal) 391bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 392bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 393bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu sub $128, %ecx 394bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, (%edx) 395bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, 0x10(%edx) 396bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, 0x20(%edx) 397bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, 0x30(%edx) 398bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, 0x40(%edx) 399bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, 0x50(%edx) 400bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, 0x60(%edx) 401bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, 0x70(%edx) 402bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu lea 128(%edx), %edx 403bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu jae L(128bytesormore_normal) 404bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 405bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(128bytesless_normal): 406bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu lea 128(%ecx), %ecx 407bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu add %ecx, %edx 408bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu shr $1, %ecx 409bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu BRANCH_TO_JMPTBL_ENTRY (L(table_16_128bytes)) 410bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 411bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu ALIGN (4) 412bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(128bytes_L2_normal): 413bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu prefetcht0 0x380(%edx) 414bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu prefetcht0 0x3c0(%edx) 415bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu sub $128, %ecx 416bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, (%edx) 417bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movaps %xmm0, 0x10(%edx) 418bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movaps %xmm0, 0x20(%edx) 419bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movaps %xmm0, 0x30(%edx) 420bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movaps %xmm0, 0x40(%edx) 421bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movaps %xmm0, 0x50(%edx) 422bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movaps %xmm0, 0x60(%edx) 423bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movaps %xmm0, 0x70(%edx) 424bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu add $128, %edx 425bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu cmp $128, %ecx 426bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu jae L(128bytes_L2_normal) 427bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 428bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(128bytesless_L2_normal): 429bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu add %ecx, %edx 430bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu shr $1, %ecx 431bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu BRANCH_TO_JMPTBL_ENTRY (L(table_16_128bytes)) 432bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 433bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu RESTORE_EBX_STATE 434bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(128bytesormore_nt_start): 435bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu sub %ebx, %ecx 436bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu mov %ebx, %eax 437bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu and $0x7f, %eax 438bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu add %eax, %ecx 439bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movd %xmm0, %eax 440bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu ALIGN (4) 441bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(128bytesormore_shared_cache_loop): 442bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu prefetcht0 0x3c0(%edx) 443bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu prefetcht0 0x380(%edx) 444bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu sub $0x80, %ebx 445bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, (%edx) 446bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, 0x10(%edx) 447bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, 0x20(%edx) 448bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, 0x30(%edx) 449bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, 0x40(%edx) 450bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, 0x50(%edx) 451bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, 0x60(%edx) 452bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, 0x70(%edx) 453bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu add $0x80, %edx 454bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu cmp $0x80, %ebx 455bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu jae L(128bytesormore_shared_cache_loop) 456bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu cmp $0x80, %ecx 457bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu jb L(shared_cache_loop_end) 458bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu ALIGN (4) 459bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(128bytesormore_nt): 460bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu sub $0x80, %ecx 461bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movntdq %xmm0, (%edx) 462bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movntdq %xmm0, 0x10(%edx) 463bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movntdq %xmm0, 0x20(%edx) 464bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movntdq %xmm0, 0x30(%edx) 465bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movntdq %xmm0, 0x40(%edx) 466bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movntdq %xmm0, 0x50(%edx) 467bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movntdq %xmm0, 0x60(%edx) 468bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movntdq %xmm0, 0x70(%edx) 469bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu add $0x80, %edx 470bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu cmp $0x80, %ecx 471bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu jae L(128bytesormore_nt) 472bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu sfence 473bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(shared_cache_loop_end): 4749ff8767bc6c1a0eae1fe9db1a2d6bd75c32988a3Pavel Chupin#if defined DATA_CACHE_SIZE || !(defined SHARED || defined __PIC__) 475bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu POP (%ebx) 476bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu#endif 477bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu add %ecx, %edx 478bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu shr $1, %ecx 479bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu BRANCH_TO_JMPTBL_ENTRY (L(table_16_128bytes)) 480bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 481bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 482bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .pushsection .rodata.sse2,"a",@progbits 483bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu ALIGN (2) 484bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(table_16_128bytes): 485bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_0bytes), L(table_16_128bytes)) 486bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_2bytes), L(table_16_128bytes)) 487bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_4bytes), L(table_16_128bytes)) 488bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_6bytes), L(table_16_128bytes)) 489bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_8bytes), L(table_16_128bytes)) 490bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_10bytes), L(table_16_128bytes)) 491bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_12bytes), L(table_16_128bytes)) 492bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_14bytes), L(table_16_128bytes)) 493bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_16bytes), L(table_16_128bytes)) 494bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_18bytes), L(table_16_128bytes)) 495bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_20bytes), L(table_16_128bytes)) 496bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_22bytes), L(table_16_128bytes)) 497bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_24bytes), L(table_16_128bytes)) 498bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_26bytes), L(table_16_128bytes)) 499bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_28bytes), L(table_16_128bytes)) 500bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_30bytes), L(table_16_128bytes)) 501bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_32bytes), L(table_16_128bytes)) 502bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_34bytes), L(table_16_128bytes)) 503bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_36bytes), L(table_16_128bytes)) 504bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_38bytes), L(table_16_128bytes)) 505bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_40bytes), L(table_16_128bytes)) 506bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_42bytes), L(table_16_128bytes)) 507bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_44bytes), L(table_16_128bytes)) 508bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_46bytes), L(table_16_128bytes)) 509bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_48bytes), L(table_16_128bytes)) 510bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_50bytes), L(table_16_128bytes)) 511bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_52bytes), L(table_16_128bytes)) 512bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_54bytes), L(table_16_128bytes)) 513bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_56bytes), L(table_16_128bytes)) 514bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_58bytes), L(table_16_128bytes)) 515bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_60bytes), L(table_16_128bytes)) 516bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_62bytes), L(table_16_128bytes)) 517bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_64bytes), L(table_16_128bytes)) 518bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_66bytes), L(table_16_128bytes)) 519bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_68bytes), L(table_16_128bytes)) 520bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_70bytes), L(table_16_128bytes)) 521bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_72bytes), L(table_16_128bytes)) 522bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_74bytes), L(table_16_128bytes)) 523bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_76bytes), L(table_16_128bytes)) 524bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_78bytes), L(table_16_128bytes)) 525bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_80bytes), L(table_16_128bytes)) 526bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_82bytes), L(table_16_128bytes)) 527bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_84bytes), L(table_16_128bytes)) 528bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_86bytes), L(table_16_128bytes)) 529bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_88bytes), L(table_16_128bytes)) 530bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_90bytes), L(table_16_128bytes)) 531bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_92bytes), L(table_16_128bytes)) 532bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_94bytes), L(table_16_128bytes)) 533bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_96bytes), L(table_16_128bytes)) 534bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_98bytes), L(table_16_128bytes)) 535bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_100bytes), L(table_16_128bytes)) 536bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_102bytes), L(table_16_128bytes)) 537bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_104bytes), L(table_16_128bytes)) 538bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_106bytes), L(table_16_128bytes)) 539bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_108bytes), L(table_16_128bytes)) 540bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_110bytes), L(table_16_128bytes)) 541bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_112bytes), L(table_16_128bytes)) 542bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_114bytes), L(table_16_128bytes)) 543bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_116bytes), L(table_16_128bytes)) 544bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_118bytes), L(table_16_128bytes)) 545bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_120bytes), L(table_16_128bytes)) 546bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_122bytes), L(table_16_128bytes)) 547bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_124bytes), L(table_16_128bytes)) 548bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_126bytes), L(table_16_128bytes)) 549bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .popsection 550bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 551bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 552bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu ALIGN (4) 553bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_112bytes): 554bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -112(%edx) 555bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_96bytes): 556bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -96(%edx) 557bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_80bytes): 558bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -80(%edx) 559bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_64bytes): 560bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -64(%edx) 561bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_48bytes): 562bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -48(%edx) 563bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_32bytes): 564bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -32(%edx) 565bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_16bytes): 566bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -16(%edx) 567bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_0bytes): 568bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu SETRTNVAL 569bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu RETURN 570bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 571bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 572bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu ALIGN (4) 573bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_114bytes): 574bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -114(%edx) 575bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_98bytes): 576bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -98(%edx) 577bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_82bytes): 578bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -82(%edx) 579bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_66bytes): 580bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -66(%edx) 581bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_50bytes): 582bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -50(%edx) 583bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_34bytes): 584bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -34(%edx) 585bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_18bytes): 586bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -18(%edx) 587bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_2bytes): 588bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movw %ax, -2(%edx) 589bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu SETRTNVAL 590bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu RETURN 591bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 592bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu ALIGN (4) 593bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_116bytes): 594bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -116(%edx) 595bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_100bytes): 596bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -100(%edx) 597bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_84bytes): 598bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -84(%edx) 599bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_68bytes): 600bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -68(%edx) 601bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_52bytes): 602bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -52(%edx) 603bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_36bytes): 604bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -36(%edx) 605bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_20bytes): 606bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -20(%edx) 607bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_4bytes): 608bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -4(%edx) 609bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu SETRTNVAL 610bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu RETURN 611bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 612bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 613bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu ALIGN (4) 614bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_118bytes): 615bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -118(%edx) 616bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_102bytes): 617bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -102(%edx) 618bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_86bytes): 619bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -86(%edx) 620bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_70bytes): 621bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -70(%edx) 622bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_54bytes): 623bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -54(%edx) 624bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_38bytes): 625bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -38(%edx) 626bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_22bytes): 627bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -22(%edx) 628bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_6bytes): 629bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -6(%edx) 630bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movw %ax, -2(%edx) 631bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu SETRTNVAL 632bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu RETURN 633bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 634bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 635bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu ALIGN (4) 636bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_120bytes): 637bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -120(%edx) 638bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_104bytes): 639bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -104(%edx) 640bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_88bytes): 641bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -88(%edx) 642bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_72bytes): 643bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -72(%edx) 644bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_56bytes): 645bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -56(%edx) 646bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_40bytes): 647bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -40(%edx) 648bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_24bytes): 649bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -24(%edx) 650bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_8bytes): 651bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movq %xmm0, -8(%edx) 652bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu SETRTNVAL 653bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu RETURN 654bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 655bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 656bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu ALIGN (4) 657bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_122bytes): 658bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -122(%edx) 659bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_106bytes): 660bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -106(%edx) 661bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_90bytes): 662bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -90(%edx) 663bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_74bytes): 664bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -74(%edx) 665bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_58bytes): 666bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -58(%edx) 667bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_42bytes): 668bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -42(%edx) 669bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_26bytes): 670bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -26(%edx) 671bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_10bytes): 672bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movq %xmm0, -10(%edx) 673bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movw %ax, -2(%edx) 674bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu SETRTNVAL 675bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu RETURN 676bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 677bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 678bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu ALIGN (4) 679bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_124bytes): 680bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -124(%edx) 681bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_108bytes): 682bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -108(%edx) 683bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_92bytes): 684bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -92(%edx) 685bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_76bytes): 686bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -76(%edx) 687bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_60bytes): 688bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -60(%edx) 689bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_44bytes): 690bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -44(%edx) 691bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_28bytes): 692bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -28(%edx) 693bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_12bytes): 694bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movq %xmm0, -12(%edx) 695bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -4(%edx) 696bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu SETRTNVAL 697bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu RETURN 698bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 699bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 700bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu ALIGN (4) 701bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_126bytes): 702bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -126(%edx) 703bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_110bytes): 704bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -110(%edx) 705bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_94bytes): 706bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -94(%edx) 707bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_78bytes): 708bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -78(%edx) 709bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_62bytes): 710bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -62(%edx) 711bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_46bytes): 712bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -46(%edx) 713bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_30bytes): 714bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -30(%edx) 715bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_14bytes): 716bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movq %xmm0, -14(%edx) 717bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -6(%edx) 718bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movw %ax, -2(%edx) 719bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu SETRTNVAL 720bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu RETURN 721bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 722bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuEND (sse2_memset16_atom) 723