sse2-memset32-atom.S revision bb12ac9b85adae96cbd38b2220c5da9a9d80bc54
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_BZERO32 75bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu# define DEST PARMS 76bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu# define LEN DEST+4 77bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu#else 78bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu# define DEST PARMS 79bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu# define DWDS DEST+4 80bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu# define LEN DWDS+4 81bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu#endif 82bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 83bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu#ifdef USE_AS_WMEMSET32 84bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu# define SETRTNVAL movl DEST(%esp), %eax 85bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu#else 86bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu# define SETRTNVAL 87bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu#endif 88bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 89bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu#ifdef SHARED 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_memset32_atom) 133bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu ENTRANCE 134bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 135bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl LEN(%esp), %ecx 136bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu#ifdef USE_AS_ANDROID 137bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu shr $2, %ecx 138bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu#endif 139bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu#ifdef USE_AS_BZERO32 140bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu xor %eax, %eax 141bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu#else 142bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu mov DWDS(%esp), %eax 143bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu mov %eax, %edx 144bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu#endif 145bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl DEST(%esp), %edx 146bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu cmp $16, %ecx 147bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu jae L(16dbwordsormore) 148bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 149bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(write_less16dbwords): 150bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu lea (%edx, %ecx, 4), %edx 151bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu BRANCH_TO_JMPTBL_ENTRY (L(table_less16dbwords)) 152bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 153bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .pushsection .rodata.sse2,"a",@progbits 154bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu ALIGN (2) 155bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(table_less16dbwords): 156bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(write_0dbwords), L(table_less16dbwords)) 157bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(write_1dbwords), L(table_less16dbwords)) 158bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(write_2dbwords), L(table_less16dbwords)) 159bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(write_3dbwords), L(table_less16dbwords)) 160bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(write_4dbwords), L(table_less16dbwords)) 161bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(write_5dbwords), L(table_less16dbwords)) 162bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(write_6dbwords), L(table_less16dbwords)) 163bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(write_7dbwords), L(table_less16dbwords)) 164bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(write_8dbwords), L(table_less16dbwords)) 165bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(write_9dbwords), L(table_less16dbwords)) 166bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(write_10dbwords), L(table_less16dbwords)) 167bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(write_11dbwords), L(table_less16dbwords)) 168bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(write_12dbwords), L(table_less16dbwords)) 169bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(write_13dbwords), L(table_less16dbwords)) 170bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(write_14dbwords), L(table_less16dbwords)) 171bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(write_15dbwords), L(table_less16dbwords)) 172bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .popsection 173bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 174bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu ALIGN (4) 175bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(write_15dbwords): 176bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -60(%edx) 177bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(write_14dbwords): 178bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -56(%edx) 179bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(write_13dbwords): 180bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -52(%edx) 181bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(write_12dbwords): 182bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -48(%edx) 183bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(write_11dbwords): 184bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -44(%edx) 185bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(write_10dbwords): 186bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -40(%edx) 187bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(write_9dbwords): 188bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -36(%edx) 189bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(write_8dbwords): 190bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -32(%edx) 191bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(write_7dbwords): 192bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -28(%edx) 193bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(write_6dbwords): 194bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -24(%edx) 195bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(write_5dbwords): 196bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -20(%edx) 197bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(write_4dbwords): 198bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -16(%edx) 199bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(write_3dbwords): 200bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -12(%edx) 201bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(write_2dbwords): 202bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -8(%edx) 203bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(write_1dbwords): 204bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -4(%edx) 205bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(write_0dbwords): 206bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu SETRTNVAL 207bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu RETURN 208bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 209bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu ALIGN (4) 210bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(16dbwordsormore): 211bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu test $3, %edx 212bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu jz L(aligned4bytes) 213bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu mov %eax, (%edx) 214bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu mov %eax, -4(%edx, %ecx, 4) 215bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu sub $1, %ecx 216bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu rol $24, %eax 217bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu add $1, %edx 218bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu test $3, %edx 219bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu jz L(aligned4bytes) 220bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu ror $8, %eax 221bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu add $1, %edx 222bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu test $3, %edx 223bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu jz L(aligned4bytes) 224bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu ror $8, %eax 225bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu add $1, %edx 226bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned4bytes): 227bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu shl $2, %ecx 228bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 229bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu#ifdef USE_AS_BZERO32 230bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu pxor %xmm0, %xmm0 231bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu#else 232bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movd %eax, %xmm0 233bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu pshufd $0, %xmm0, %xmm0 234bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu#endif 235bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu testl $0xf, %edx 236bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu jz L(aligned_16) 237bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu/* ECX > 32 and EDX is not 16 byte aligned. */ 238bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(not_aligned_16): 239bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqu %xmm0, (%edx) 240bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %edx, %eax 241bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu and $-16, %edx 242bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu add $16, %edx 243bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu sub %edx, %eax 244bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu add %eax, %ecx 245bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movd %xmm0, %eax 246bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu ALIGN (4) 247bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16): 248bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu cmp $128, %ecx 249bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu jae L(128bytesormore) 250bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 251bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_less128bytes): 252bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu add %ecx, %edx 253bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu shr $2, %ecx 254bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu BRANCH_TO_JMPTBL_ENTRY (L(table_16_128bytes)) 255bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 256bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu ALIGN (4) 257bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(128bytesormore): 258bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu#ifdef SHARED_CACHE_SIZE 259bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu PUSH (%ebx) 260bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu mov $SHARED_CACHE_SIZE, %ebx 261bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu#else 262bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu# ifdef SHARED 263bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu call __i686.get_pc_thunk.bx 264bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu add $_GLOBAL_OFFSET_TABLE_, %ebx 265bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu mov __x86_shared_cache_size@GOTOFF(%ebx), %ebx 266bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu# else 267bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu PUSH (%ebx) 268bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu mov __x86_shared_cache_size, %ebx 269bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu# endif 270bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu#endif 271bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu cmp %ebx, %ecx 272bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu jae L(128bytesormore_nt_start) 273bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 274bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu#ifdef DATA_CACHE_SIZE 275bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu POP (%ebx) 276bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu# define RESTORE_EBX_STATE CFI_PUSH (%ebx) 277bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu cmp $DATA_CACHE_SIZE, %ecx 278bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu#else 279bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu# ifdef SHARED 280bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu# define RESTORE_EBX_STATE 281bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu call __i686.get_pc_thunk.bx 282bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu add $_GLOBAL_OFFSET_TABLE_, %ebx 283bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu cmp __x86_data_cache_size@GOTOFF(%ebx), %ecx 284bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu# else 285bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu POP (%ebx) 286bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu# define RESTORE_EBX_STATE CFI_PUSH (%ebx) 287bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu cmp __x86_data_cache_size, %ecx 288bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu# endif 289bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu#endif 290bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 291bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu jae L(128bytes_L2_normal) 292bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu subl $128, %ecx 293bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(128bytesormore_normal): 294bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu sub $128, %ecx 295bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, (%edx) 296bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, 0x10(%edx) 297bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, 0x20(%edx) 298bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, 0x30(%edx) 299bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, 0x40(%edx) 300bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, 0x50(%edx) 301bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, 0x60(%edx) 302bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, 0x70(%edx) 303bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu lea 128(%edx), %edx 304bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu jb L(128bytesless_normal) 305bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 306bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 307bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu sub $128, %ecx 308bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, (%edx) 309bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, 0x10(%edx) 310bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, 0x20(%edx) 311bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, 0x30(%edx) 312bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, 0x40(%edx) 313bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, 0x50(%edx) 314bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, 0x60(%edx) 315bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, 0x70(%edx) 316bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu lea 128(%edx), %edx 317bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu jae L(128bytesormore_normal) 318bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 319bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(128bytesless_normal): 320bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu lea 128(%ecx), %ecx 321bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu add %ecx, %edx 322bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu shr $2, %ecx 323bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu BRANCH_TO_JMPTBL_ENTRY (L(table_16_128bytes)) 324bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 325bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu ALIGN (4) 326bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(128bytes_L2_normal): 327bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu prefetcht0 0x380(%edx) 328bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu prefetcht0 0x3c0(%edx) 329bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu sub $128, %ecx 330bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, (%edx) 331bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movaps %xmm0, 0x10(%edx) 332bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movaps %xmm0, 0x20(%edx) 333bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movaps %xmm0, 0x30(%edx) 334bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movaps %xmm0, 0x40(%edx) 335bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movaps %xmm0, 0x50(%edx) 336bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movaps %xmm0, 0x60(%edx) 337bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movaps %xmm0, 0x70(%edx) 338bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu add $128, %edx 339bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu cmp $128, %ecx 340bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu jae L(128bytes_L2_normal) 341bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 342bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(128bytesless_L2_normal): 343bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu add %ecx, %edx 344bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu shr $2, %ecx 345bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu BRANCH_TO_JMPTBL_ENTRY (L(table_16_128bytes)) 346bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 347bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu RESTORE_EBX_STATE 348bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(128bytesormore_nt_start): 349bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu sub %ebx, %ecx 350bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu mov %ebx, %eax 351bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu and $0x7f, %eax 352bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu add %eax, %ecx 353bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movd %xmm0, %eax 354bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu ALIGN (4) 355bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(128bytesormore_shared_cache_loop): 356bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu prefetcht0 0x3c0(%edx) 357bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu prefetcht0 0x380(%edx) 358bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu sub $0x80, %ebx 359bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, (%edx) 360bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, 0x10(%edx) 361bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, 0x20(%edx) 362bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, 0x30(%edx) 363bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, 0x40(%edx) 364bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, 0x50(%edx) 365bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, 0x60(%edx) 366bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, 0x70(%edx) 367bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu add $0x80, %edx 368bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu cmp $0x80, %ebx 369bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu jae L(128bytesormore_shared_cache_loop) 370bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu cmp $0x80, %ecx 371bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu jb L(shared_cache_loop_end) 372bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 373bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu ALIGN (4) 374bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(128bytesormore_nt): 375bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu sub $0x80, %ecx 376bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movntdq %xmm0, (%edx) 377bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movntdq %xmm0, 0x10(%edx) 378bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movntdq %xmm0, 0x20(%edx) 379bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movntdq %xmm0, 0x30(%edx) 380bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movntdq %xmm0, 0x40(%edx) 381bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movntdq %xmm0, 0x50(%edx) 382bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movntdq %xmm0, 0x60(%edx) 383bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movntdq %xmm0, 0x70(%edx) 384bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu add $0x80, %edx 385bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu cmp $0x80, %ecx 386bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu jae L(128bytesormore_nt) 387bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu sfence 388bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(shared_cache_loop_end): 389bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu#if defined DATA_CACHE_SIZE || !defined SHARED 390bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu POP (%ebx) 391bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu#endif 392bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu add %ecx, %edx 393bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu shr $2, %ecx 394bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu BRANCH_TO_JMPTBL_ENTRY (L(table_16_128bytes)) 395bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 396bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .pushsection .rodata.sse2,"a",@progbits 397bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu ALIGN (2) 398bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(table_16_128bytes): 399bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_0bytes), L(table_16_128bytes)) 400bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_4bytes), L(table_16_128bytes)) 401bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_8bytes), L(table_16_128bytes)) 402bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_12bytes), L(table_16_128bytes)) 403bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_16bytes), L(table_16_128bytes)) 404bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_20bytes), L(table_16_128bytes)) 405bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_24bytes), L(table_16_128bytes)) 406bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_28bytes), L(table_16_128bytes)) 407bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_32bytes), L(table_16_128bytes)) 408bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_36bytes), L(table_16_128bytes)) 409bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_40bytes), L(table_16_128bytes)) 410bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_44bytes), L(table_16_128bytes)) 411bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_48bytes), L(table_16_128bytes)) 412bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_52bytes), L(table_16_128bytes)) 413bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_56bytes), L(table_16_128bytes)) 414bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_60bytes), L(table_16_128bytes)) 415bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_64bytes), L(table_16_128bytes)) 416bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_68bytes), L(table_16_128bytes)) 417bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_72bytes), L(table_16_128bytes)) 418bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_76bytes), L(table_16_128bytes)) 419bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_80bytes), L(table_16_128bytes)) 420bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_84bytes), L(table_16_128bytes)) 421bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_88bytes), L(table_16_128bytes)) 422bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_92bytes), L(table_16_128bytes)) 423bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_96bytes), L(table_16_128bytes)) 424bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_100bytes), L(table_16_128bytes)) 425bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_104bytes), L(table_16_128bytes)) 426bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_108bytes), L(table_16_128bytes)) 427bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_112bytes), L(table_16_128bytes)) 428bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_116bytes), L(table_16_128bytes)) 429bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_120bytes), L(table_16_128bytes)) 430bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .int JMPTBL (L(aligned_16_124bytes), L(table_16_128bytes)) 431bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu .popsection 432bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 433bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu ALIGN (4) 434bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_112bytes): 435bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -112(%edx) 436bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_96bytes): 437bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -96(%edx) 438bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_80bytes): 439bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -80(%edx) 440bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_64bytes): 441bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -64(%edx) 442bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_48bytes): 443bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -48(%edx) 444bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_32bytes): 445bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -32(%edx) 446bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_16bytes): 447bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -16(%edx) 448bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_0bytes): 449bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu SETRTNVAL 450bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu RETURN 451bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 452bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu ALIGN (4) 453bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_116bytes): 454bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -116(%edx) 455bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_100bytes): 456bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -100(%edx) 457bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_84bytes): 458bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -84(%edx) 459bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_68bytes): 460bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -68(%edx) 461bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_52bytes): 462bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -52(%edx) 463bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_36bytes): 464bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -36(%edx) 465bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_20bytes): 466bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -20(%edx) 467bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_4bytes): 468bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -4(%edx) 469bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu SETRTNVAL 470bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu RETURN 471bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 472bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu ALIGN (4) 473bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_120bytes): 474bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -120(%edx) 475bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_104bytes): 476bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -104(%edx) 477bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_88bytes): 478bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -88(%edx) 479bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_72bytes): 480bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -72(%edx) 481bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_56bytes): 482bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -56(%edx) 483bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_40bytes): 484bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -40(%edx) 485bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_24bytes): 486bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -24(%edx) 487bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_8bytes): 488bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movq %xmm0, -8(%edx) 489bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu SETRTNVAL 490bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu RETURN 491bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 492bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu ALIGN (4) 493bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_124bytes): 494bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -124(%edx) 495bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_108bytes): 496bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -108(%edx) 497bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_92bytes): 498bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -92(%edx) 499bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_76bytes): 500bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -76(%edx) 501bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_60bytes): 502bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -60(%edx) 503bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_44bytes): 504bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -44(%edx) 505bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_28bytes): 506bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movdqa %xmm0, -28(%edx) 507bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuL(aligned_16_12bytes): 508bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movq %xmm0, -12(%edx) 509bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu movl %eax, -4(%edx) 510bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu SETRTNVAL 511bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu RETURN 512bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, Hongjiu 513bb12ac9b85adae96cbd38b2220c5da9a9d80bc54Lu, HongjiuEND (sse2_memset32_atom) 514