1*8fb009dcSAndroid Build Coastguard Worker// This file is generated from a similarly-named Perl script in the BoringSSL 2*8fb009dcSAndroid Build Coastguard Worker// source tree. Do not edit by hand. 3*8fb009dcSAndroid Build Coastguard Worker 4*8fb009dcSAndroid Build Coastguard Worker#include <openssl/asm_base.h> 5*8fb009dcSAndroid Build Coastguard Worker 6*8fb009dcSAndroid Build Coastguard Worker#if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_X86) && defined(__ELF__) 7*8fb009dcSAndroid Build Coastguard Worker.text 8*8fb009dcSAndroid Build Coastguard Worker.globl ChaCha20_ctr32_nohw 9*8fb009dcSAndroid Build Coastguard Worker.hidden ChaCha20_ctr32_nohw 10*8fb009dcSAndroid Build Coastguard Worker.type ChaCha20_ctr32_nohw,@function 11*8fb009dcSAndroid Build Coastguard Worker.align 16 12*8fb009dcSAndroid Build Coastguard WorkerChaCha20_ctr32_nohw: 13*8fb009dcSAndroid Build Coastguard Worker.L_ChaCha20_ctr32_nohw_begin: 14*8fb009dcSAndroid Build Coastguard Worker pushl %ebp 15*8fb009dcSAndroid Build Coastguard Worker pushl %ebx 16*8fb009dcSAndroid Build Coastguard Worker pushl %esi 17*8fb009dcSAndroid Build Coastguard Worker pushl %edi 18*8fb009dcSAndroid Build Coastguard Worker movl 32(%esp),%esi 19*8fb009dcSAndroid Build Coastguard Worker movl 36(%esp),%edi 20*8fb009dcSAndroid Build Coastguard Worker subl $132,%esp 21*8fb009dcSAndroid Build Coastguard Worker movl (%esi),%eax 22*8fb009dcSAndroid Build Coastguard Worker movl 4(%esi),%ebx 23*8fb009dcSAndroid Build Coastguard Worker movl 8(%esi),%ecx 24*8fb009dcSAndroid Build Coastguard Worker movl 12(%esi),%edx 25*8fb009dcSAndroid Build Coastguard Worker movl %eax,80(%esp) 26*8fb009dcSAndroid Build Coastguard Worker movl %ebx,84(%esp) 27*8fb009dcSAndroid Build Coastguard Worker movl %ecx,88(%esp) 28*8fb009dcSAndroid Build Coastguard Worker movl %edx,92(%esp) 29*8fb009dcSAndroid Build Coastguard Worker movl 16(%esi),%eax 30*8fb009dcSAndroid Build Coastguard Worker movl 20(%esi),%ebx 31*8fb009dcSAndroid Build Coastguard Worker movl 24(%esi),%ecx 32*8fb009dcSAndroid Build Coastguard Worker movl 28(%esi),%edx 33*8fb009dcSAndroid Build Coastguard Worker movl %eax,96(%esp) 34*8fb009dcSAndroid Build Coastguard Worker movl %ebx,100(%esp) 35*8fb009dcSAndroid Build Coastguard Worker movl %ecx,104(%esp) 36*8fb009dcSAndroid Build Coastguard Worker movl %edx,108(%esp) 37*8fb009dcSAndroid Build Coastguard Worker movl (%edi),%eax 38*8fb009dcSAndroid Build Coastguard Worker movl 4(%edi),%ebx 39*8fb009dcSAndroid Build Coastguard Worker movl 8(%edi),%ecx 40*8fb009dcSAndroid Build Coastguard Worker movl 12(%edi),%edx 41*8fb009dcSAndroid Build Coastguard Worker subl $1,%eax 42*8fb009dcSAndroid Build Coastguard Worker movl %eax,112(%esp) 43*8fb009dcSAndroid Build Coastguard Worker movl %ebx,116(%esp) 44*8fb009dcSAndroid Build Coastguard Worker movl %ecx,120(%esp) 45*8fb009dcSAndroid Build Coastguard Worker movl %edx,124(%esp) 46*8fb009dcSAndroid Build Coastguard Worker jmp .L000entry 47*8fb009dcSAndroid Build Coastguard Worker.align 16 48*8fb009dcSAndroid Build Coastguard Worker.L001outer_loop: 49*8fb009dcSAndroid Build Coastguard Worker movl %ebx,156(%esp) 50*8fb009dcSAndroid Build Coastguard Worker movl %eax,152(%esp) 51*8fb009dcSAndroid Build Coastguard Worker movl %ecx,160(%esp) 52*8fb009dcSAndroid Build Coastguard Worker.L000entry: 53*8fb009dcSAndroid Build Coastguard Worker movl $1634760805,%eax 54*8fb009dcSAndroid Build Coastguard Worker movl $857760878,4(%esp) 55*8fb009dcSAndroid Build Coastguard Worker movl $2036477234,8(%esp) 56*8fb009dcSAndroid Build Coastguard Worker movl $1797285236,12(%esp) 57*8fb009dcSAndroid Build Coastguard Worker movl 84(%esp),%ebx 58*8fb009dcSAndroid Build Coastguard Worker movl 88(%esp),%ebp 59*8fb009dcSAndroid Build Coastguard Worker movl 104(%esp),%ecx 60*8fb009dcSAndroid Build Coastguard Worker movl 108(%esp),%esi 61*8fb009dcSAndroid Build Coastguard Worker movl 116(%esp),%edx 62*8fb009dcSAndroid Build Coastguard Worker movl 120(%esp),%edi 63*8fb009dcSAndroid Build Coastguard Worker movl %ebx,20(%esp) 64*8fb009dcSAndroid Build Coastguard Worker movl %ebp,24(%esp) 65*8fb009dcSAndroid Build Coastguard Worker movl %ecx,40(%esp) 66*8fb009dcSAndroid Build Coastguard Worker movl %esi,44(%esp) 67*8fb009dcSAndroid Build Coastguard Worker movl %edx,52(%esp) 68*8fb009dcSAndroid Build Coastguard Worker movl %edi,56(%esp) 69*8fb009dcSAndroid Build Coastguard Worker movl 92(%esp),%ebx 70*8fb009dcSAndroid Build Coastguard Worker movl 124(%esp),%edi 71*8fb009dcSAndroid Build Coastguard Worker movl 112(%esp),%edx 72*8fb009dcSAndroid Build Coastguard Worker movl 80(%esp),%ebp 73*8fb009dcSAndroid Build Coastguard Worker movl 96(%esp),%ecx 74*8fb009dcSAndroid Build Coastguard Worker movl 100(%esp),%esi 75*8fb009dcSAndroid Build Coastguard Worker addl $1,%edx 76*8fb009dcSAndroid Build Coastguard Worker movl %ebx,28(%esp) 77*8fb009dcSAndroid Build Coastguard Worker movl %edi,60(%esp) 78*8fb009dcSAndroid Build Coastguard Worker movl %edx,112(%esp) 79*8fb009dcSAndroid Build Coastguard Worker movl $10,%ebx 80*8fb009dcSAndroid Build Coastguard Worker jmp .L002loop 81*8fb009dcSAndroid Build Coastguard Worker.align 16 82*8fb009dcSAndroid Build Coastguard Worker.L002loop: 83*8fb009dcSAndroid Build Coastguard Worker addl %ebp,%eax 84*8fb009dcSAndroid Build Coastguard Worker movl %ebx,128(%esp) 85*8fb009dcSAndroid Build Coastguard Worker movl %ebp,%ebx 86*8fb009dcSAndroid Build Coastguard Worker xorl %eax,%edx 87*8fb009dcSAndroid Build Coastguard Worker roll $16,%edx 88*8fb009dcSAndroid Build Coastguard Worker addl %edx,%ecx 89*8fb009dcSAndroid Build Coastguard Worker xorl %ecx,%ebx 90*8fb009dcSAndroid Build Coastguard Worker movl 52(%esp),%edi 91*8fb009dcSAndroid Build Coastguard Worker roll $12,%ebx 92*8fb009dcSAndroid Build Coastguard Worker movl 20(%esp),%ebp 93*8fb009dcSAndroid Build Coastguard Worker addl %ebx,%eax 94*8fb009dcSAndroid Build Coastguard Worker xorl %eax,%edx 95*8fb009dcSAndroid Build Coastguard Worker movl %eax,(%esp) 96*8fb009dcSAndroid Build Coastguard Worker roll $8,%edx 97*8fb009dcSAndroid Build Coastguard Worker movl 4(%esp),%eax 98*8fb009dcSAndroid Build Coastguard Worker addl %edx,%ecx 99*8fb009dcSAndroid Build Coastguard Worker movl %edx,48(%esp) 100*8fb009dcSAndroid Build Coastguard Worker xorl %ecx,%ebx 101*8fb009dcSAndroid Build Coastguard Worker addl %ebp,%eax 102*8fb009dcSAndroid Build Coastguard Worker roll $7,%ebx 103*8fb009dcSAndroid Build Coastguard Worker xorl %eax,%edi 104*8fb009dcSAndroid Build Coastguard Worker movl %ecx,32(%esp) 105*8fb009dcSAndroid Build Coastguard Worker roll $16,%edi 106*8fb009dcSAndroid Build Coastguard Worker movl %ebx,16(%esp) 107*8fb009dcSAndroid Build Coastguard Worker addl %edi,%esi 108*8fb009dcSAndroid Build Coastguard Worker movl 40(%esp),%ecx 109*8fb009dcSAndroid Build Coastguard Worker xorl %esi,%ebp 110*8fb009dcSAndroid Build Coastguard Worker movl 56(%esp),%edx 111*8fb009dcSAndroid Build Coastguard Worker roll $12,%ebp 112*8fb009dcSAndroid Build Coastguard Worker movl 24(%esp),%ebx 113*8fb009dcSAndroid Build Coastguard Worker addl %ebp,%eax 114*8fb009dcSAndroid Build Coastguard Worker xorl %eax,%edi 115*8fb009dcSAndroid Build Coastguard Worker movl %eax,4(%esp) 116*8fb009dcSAndroid Build Coastguard Worker roll $8,%edi 117*8fb009dcSAndroid Build Coastguard Worker movl 8(%esp),%eax 118*8fb009dcSAndroid Build Coastguard Worker addl %edi,%esi 119*8fb009dcSAndroid Build Coastguard Worker movl %edi,52(%esp) 120*8fb009dcSAndroid Build Coastguard Worker xorl %esi,%ebp 121*8fb009dcSAndroid Build Coastguard Worker addl %ebx,%eax 122*8fb009dcSAndroid Build Coastguard Worker roll $7,%ebp 123*8fb009dcSAndroid Build Coastguard Worker xorl %eax,%edx 124*8fb009dcSAndroid Build Coastguard Worker movl %esi,36(%esp) 125*8fb009dcSAndroid Build Coastguard Worker roll $16,%edx 126*8fb009dcSAndroid Build Coastguard Worker movl %ebp,20(%esp) 127*8fb009dcSAndroid Build Coastguard Worker addl %edx,%ecx 128*8fb009dcSAndroid Build Coastguard Worker movl 44(%esp),%esi 129*8fb009dcSAndroid Build Coastguard Worker xorl %ecx,%ebx 130*8fb009dcSAndroid Build Coastguard Worker movl 60(%esp),%edi 131*8fb009dcSAndroid Build Coastguard Worker roll $12,%ebx 132*8fb009dcSAndroid Build Coastguard Worker movl 28(%esp),%ebp 133*8fb009dcSAndroid Build Coastguard Worker addl %ebx,%eax 134*8fb009dcSAndroid Build Coastguard Worker xorl %eax,%edx 135*8fb009dcSAndroid Build Coastguard Worker movl %eax,8(%esp) 136*8fb009dcSAndroid Build Coastguard Worker roll $8,%edx 137*8fb009dcSAndroid Build Coastguard Worker movl 12(%esp),%eax 138*8fb009dcSAndroid Build Coastguard Worker addl %edx,%ecx 139*8fb009dcSAndroid Build Coastguard Worker movl %edx,56(%esp) 140*8fb009dcSAndroid Build Coastguard Worker xorl %ecx,%ebx 141*8fb009dcSAndroid Build Coastguard Worker addl %ebp,%eax 142*8fb009dcSAndroid Build Coastguard Worker roll $7,%ebx 143*8fb009dcSAndroid Build Coastguard Worker xorl %eax,%edi 144*8fb009dcSAndroid Build Coastguard Worker roll $16,%edi 145*8fb009dcSAndroid Build Coastguard Worker movl %ebx,24(%esp) 146*8fb009dcSAndroid Build Coastguard Worker addl %edi,%esi 147*8fb009dcSAndroid Build Coastguard Worker xorl %esi,%ebp 148*8fb009dcSAndroid Build Coastguard Worker roll $12,%ebp 149*8fb009dcSAndroid Build Coastguard Worker movl 20(%esp),%ebx 150*8fb009dcSAndroid Build Coastguard Worker addl %ebp,%eax 151*8fb009dcSAndroid Build Coastguard Worker xorl %eax,%edi 152*8fb009dcSAndroid Build Coastguard Worker movl %eax,12(%esp) 153*8fb009dcSAndroid Build Coastguard Worker roll $8,%edi 154*8fb009dcSAndroid Build Coastguard Worker movl (%esp),%eax 155*8fb009dcSAndroid Build Coastguard Worker addl %edi,%esi 156*8fb009dcSAndroid Build Coastguard Worker movl %edi,%edx 157*8fb009dcSAndroid Build Coastguard Worker xorl %esi,%ebp 158*8fb009dcSAndroid Build Coastguard Worker addl %ebx,%eax 159*8fb009dcSAndroid Build Coastguard Worker roll $7,%ebp 160*8fb009dcSAndroid Build Coastguard Worker xorl %eax,%edx 161*8fb009dcSAndroid Build Coastguard Worker roll $16,%edx 162*8fb009dcSAndroid Build Coastguard Worker movl %ebp,28(%esp) 163*8fb009dcSAndroid Build Coastguard Worker addl %edx,%ecx 164*8fb009dcSAndroid Build Coastguard Worker xorl %ecx,%ebx 165*8fb009dcSAndroid Build Coastguard Worker movl 48(%esp),%edi 166*8fb009dcSAndroid Build Coastguard Worker roll $12,%ebx 167*8fb009dcSAndroid Build Coastguard Worker movl 24(%esp),%ebp 168*8fb009dcSAndroid Build Coastguard Worker addl %ebx,%eax 169*8fb009dcSAndroid Build Coastguard Worker xorl %eax,%edx 170*8fb009dcSAndroid Build Coastguard Worker movl %eax,(%esp) 171*8fb009dcSAndroid Build Coastguard Worker roll $8,%edx 172*8fb009dcSAndroid Build Coastguard Worker movl 4(%esp),%eax 173*8fb009dcSAndroid Build Coastguard Worker addl %edx,%ecx 174*8fb009dcSAndroid Build Coastguard Worker movl %edx,60(%esp) 175*8fb009dcSAndroid Build Coastguard Worker xorl %ecx,%ebx 176*8fb009dcSAndroid Build Coastguard Worker addl %ebp,%eax 177*8fb009dcSAndroid Build Coastguard Worker roll $7,%ebx 178*8fb009dcSAndroid Build Coastguard Worker xorl %eax,%edi 179*8fb009dcSAndroid Build Coastguard Worker movl %ecx,40(%esp) 180*8fb009dcSAndroid Build Coastguard Worker roll $16,%edi 181*8fb009dcSAndroid Build Coastguard Worker movl %ebx,20(%esp) 182*8fb009dcSAndroid Build Coastguard Worker addl %edi,%esi 183*8fb009dcSAndroid Build Coastguard Worker movl 32(%esp),%ecx 184*8fb009dcSAndroid Build Coastguard Worker xorl %esi,%ebp 185*8fb009dcSAndroid Build Coastguard Worker movl 52(%esp),%edx 186*8fb009dcSAndroid Build Coastguard Worker roll $12,%ebp 187*8fb009dcSAndroid Build Coastguard Worker movl 28(%esp),%ebx 188*8fb009dcSAndroid Build Coastguard Worker addl %ebp,%eax 189*8fb009dcSAndroid Build Coastguard Worker xorl %eax,%edi 190*8fb009dcSAndroid Build Coastguard Worker movl %eax,4(%esp) 191*8fb009dcSAndroid Build Coastguard Worker roll $8,%edi 192*8fb009dcSAndroid Build Coastguard Worker movl 8(%esp),%eax 193*8fb009dcSAndroid Build Coastguard Worker addl %edi,%esi 194*8fb009dcSAndroid Build Coastguard Worker movl %edi,48(%esp) 195*8fb009dcSAndroid Build Coastguard Worker xorl %esi,%ebp 196*8fb009dcSAndroid Build Coastguard Worker addl %ebx,%eax 197*8fb009dcSAndroid Build Coastguard Worker roll $7,%ebp 198*8fb009dcSAndroid Build Coastguard Worker xorl %eax,%edx 199*8fb009dcSAndroid Build Coastguard Worker movl %esi,44(%esp) 200*8fb009dcSAndroid Build Coastguard Worker roll $16,%edx 201*8fb009dcSAndroid Build Coastguard Worker movl %ebp,24(%esp) 202*8fb009dcSAndroid Build Coastguard Worker addl %edx,%ecx 203*8fb009dcSAndroid Build Coastguard Worker movl 36(%esp),%esi 204*8fb009dcSAndroid Build Coastguard Worker xorl %ecx,%ebx 205*8fb009dcSAndroid Build Coastguard Worker movl 56(%esp),%edi 206*8fb009dcSAndroid Build Coastguard Worker roll $12,%ebx 207*8fb009dcSAndroid Build Coastguard Worker movl 16(%esp),%ebp 208*8fb009dcSAndroid Build Coastguard Worker addl %ebx,%eax 209*8fb009dcSAndroid Build Coastguard Worker xorl %eax,%edx 210*8fb009dcSAndroid Build Coastguard Worker movl %eax,8(%esp) 211*8fb009dcSAndroid Build Coastguard Worker roll $8,%edx 212*8fb009dcSAndroid Build Coastguard Worker movl 12(%esp),%eax 213*8fb009dcSAndroid Build Coastguard Worker addl %edx,%ecx 214*8fb009dcSAndroid Build Coastguard Worker movl %edx,52(%esp) 215*8fb009dcSAndroid Build Coastguard Worker xorl %ecx,%ebx 216*8fb009dcSAndroid Build Coastguard Worker addl %ebp,%eax 217*8fb009dcSAndroid Build Coastguard Worker roll $7,%ebx 218*8fb009dcSAndroid Build Coastguard Worker xorl %eax,%edi 219*8fb009dcSAndroid Build Coastguard Worker roll $16,%edi 220*8fb009dcSAndroid Build Coastguard Worker movl %ebx,28(%esp) 221*8fb009dcSAndroid Build Coastguard Worker addl %edi,%esi 222*8fb009dcSAndroid Build Coastguard Worker xorl %esi,%ebp 223*8fb009dcSAndroid Build Coastguard Worker movl 48(%esp),%edx 224*8fb009dcSAndroid Build Coastguard Worker roll $12,%ebp 225*8fb009dcSAndroid Build Coastguard Worker movl 128(%esp),%ebx 226*8fb009dcSAndroid Build Coastguard Worker addl %ebp,%eax 227*8fb009dcSAndroid Build Coastguard Worker xorl %eax,%edi 228*8fb009dcSAndroid Build Coastguard Worker movl %eax,12(%esp) 229*8fb009dcSAndroid Build Coastguard Worker roll $8,%edi 230*8fb009dcSAndroid Build Coastguard Worker movl (%esp),%eax 231*8fb009dcSAndroid Build Coastguard Worker addl %edi,%esi 232*8fb009dcSAndroid Build Coastguard Worker movl %edi,56(%esp) 233*8fb009dcSAndroid Build Coastguard Worker xorl %esi,%ebp 234*8fb009dcSAndroid Build Coastguard Worker roll $7,%ebp 235*8fb009dcSAndroid Build Coastguard Worker decl %ebx 236*8fb009dcSAndroid Build Coastguard Worker jnz .L002loop 237*8fb009dcSAndroid Build Coastguard Worker movl 160(%esp),%ebx 238*8fb009dcSAndroid Build Coastguard Worker addl $1634760805,%eax 239*8fb009dcSAndroid Build Coastguard Worker addl 80(%esp),%ebp 240*8fb009dcSAndroid Build Coastguard Worker addl 96(%esp),%ecx 241*8fb009dcSAndroid Build Coastguard Worker addl 100(%esp),%esi 242*8fb009dcSAndroid Build Coastguard Worker cmpl $64,%ebx 243*8fb009dcSAndroid Build Coastguard Worker jb .L003tail 244*8fb009dcSAndroid Build Coastguard Worker movl 156(%esp),%ebx 245*8fb009dcSAndroid Build Coastguard Worker addl 112(%esp),%edx 246*8fb009dcSAndroid Build Coastguard Worker addl 120(%esp),%edi 247*8fb009dcSAndroid Build Coastguard Worker xorl (%ebx),%eax 248*8fb009dcSAndroid Build Coastguard Worker xorl 16(%ebx),%ebp 249*8fb009dcSAndroid Build Coastguard Worker movl %eax,(%esp) 250*8fb009dcSAndroid Build Coastguard Worker movl 152(%esp),%eax 251*8fb009dcSAndroid Build Coastguard Worker xorl 32(%ebx),%ecx 252*8fb009dcSAndroid Build Coastguard Worker xorl 36(%ebx),%esi 253*8fb009dcSAndroid Build Coastguard Worker xorl 48(%ebx),%edx 254*8fb009dcSAndroid Build Coastguard Worker xorl 56(%ebx),%edi 255*8fb009dcSAndroid Build Coastguard Worker movl %ebp,16(%eax) 256*8fb009dcSAndroid Build Coastguard Worker movl %ecx,32(%eax) 257*8fb009dcSAndroid Build Coastguard Worker movl %esi,36(%eax) 258*8fb009dcSAndroid Build Coastguard Worker movl %edx,48(%eax) 259*8fb009dcSAndroid Build Coastguard Worker movl %edi,56(%eax) 260*8fb009dcSAndroid Build Coastguard Worker movl 4(%esp),%ebp 261*8fb009dcSAndroid Build Coastguard Worker movl 8(%esp),%ecx 262*8fb009dcSAndroid Build Coastguard Worker movl 12(%esp),%esi 263*8fb009dcSAndroid Build Coastguard Worker movl 20(%esp),%edx 264*8fb009dcSAndroid Build Coastguard Worker movl 24(%esp),%edi 265*8fb009dcSAndroid Build Coastguard Worker addl $857760878,%ebp 266*8fb009dcSAndroid Build Coastguard Worker addl $2036477234,%ecx 267*8fb009dcSAndroid Build Coastguard Worker addl $1797285236,%esi 268*8fb009dcSAndroid Build Coastguard Worker addl 84(%esp),%edx 269*8fb009dcSAndroid Build Coastguard Worker addl 88(%esp),%edi 270*8fb009dcSAndroid Build Coastguard Worker xorl 4(%ebx),%ebp 271*8fb009dcSAndroid Build Coastguard Worker xorl 8(%ebx),%ecx 272*8fb009dcSAndroid Build Coastguard Worker xorl 12(%ebx),%esi 273*8fb009dcSAndroid Build Coastguard Worker xorl 20(%ebx),%edx 274*8fb009dcSAndroid Build Coastguard Worker xorl 24(%ebx),%edi 275*8fb009dcSAndroid Build Coastguard Worker movl %ebp,4(%eax) 276*8fb009dcSAndroid Build Coastguard Worker movl %ecx,8(%eax) 277*8fb009dcSAndroid Build Coastguard Worker movl %esi,12(%eax) 278*8fb009dcSAndroid Build Coastguard Worker movl %edx,20(%eax) 279*8fb009dcSAndroid Build Coastguard Worker movl %edi,24(%eax) 280*8fb009dcSAndroid Build Coastguard Worker movl 28(%esp),%ebp 281*8fb009dcSAndroid Build Coastguard Worker movl 40(%esp),%ecx 282*8fb009dcSAndroid Build Coastguard Worker movl 44(%esp),%esi 283*8fb009dcSAndroid Build Coastguard Worker movl 52(%esp),%edx 284*8fb009dcSAndroid Build Coastguard Worker movl 60(%esp),%edi 285*8fb009dcSAndroid Build Coastguard Worker addl 92(%esp),%ebp 286*8fb009dcSAndroid Build Coastguard Worker addl 104(%esp),%ecx 287*8fb009dcSAndroid Build Coastguard Worker addl 108(%esp),%esi 288*8fb009dcSAndroid Build Coastguard Worker addl 116(%esp),%edx 289*8fb009dcSAndroid Build Coastguard Worker addl 124(%esp),%edi 290*8fb009dcSAndroid Build Coastguard Worker xorl 28(%ebx),%ebp 291*8fb009dcSAndroid Build Coastguard Worker xorl 40(%ebx),%ecx 292*8fb009dcSAndroid Build Coastguard Worker xorl 44(%ebx),%esi 293*8fb009dcSAndroid Build Coastguard Worker xorl 52(%ebx),%edx 294*8fb009dcSAndroid Build Coastguard Worker xorl 60(%ebx),%edi 295*8fb009dcSAndroid Build Coastguard Worker leal 64(%ebx),%ebx 296*8fb009dcSAndroid Build Coastguard Worker movl %ebp,28(%eax) 297*8fb009dcSAndroid Build Coastguard Worker movl (%esp),%ebp 298*8fb009dcSAndroid Build Coastguard Worker movl %ecx,40(%eax) 299*8fb009dcSAndroid Build Coastguard Worker movl 160(%esp),%ecx 300*8fb009dcSAndroid Build Coastguard Worker movl %esi,44(%eax) 301*8fb009dcSAndroid Build Coastguard Worker movl %edx,52(%eax) 302*8fb009dcSAndroid Build Coastguard Worker movl %edi,60(%eax) 303*8fb009dcSAndroid Build Coastguard Worker movl %ebp,(%eax) 304*8fb009dcSAndroid Build Coastguard Worker leal 64(%eax),%eax 305*8fb009dcSAndroid Build Coastguard Worker subl $64,%ecx 306*8fb009dcSAndroid Build Coastguard Worker jnz .L001outer_loop 307*8fb009dcSAndroid Build Coastguard Worker jmp .L004done 308*8fb009dcSAndroid Build Coastguard Worker.L003tail: 309*8fb009dcSAndroid Build Coastguard Worker addl 112(%esp),%edx 310*8fb009dcSAndroid Build Coastguard Worker addl 120(%esp),%edi 311*8fb009dcSAndroid Build Coastguard Worker movl %eax,(%esp) 312*8fb009dcSAndroid Build Coastguard Worker movl %ebp,16(%esp) 313*8fb009dcSAndroid Build Coastguard Worker movl %ecx,32(%esp) 314*8fb009dcSAndroid Build Coastguard Worker movl %esi,36(%esp) 315*8fb009dcSAndroid Build Coastguard Worker movl %edx,48(%esp) 316*8fb009dcSAndroid Build Coastguard Worker movl %edi,56(%esp) 317*8fb009dcSAndroid Build Coastguard Worker movl 4(%esp),%ebp 318*8fb009dcSAndroid Build Coastguard Worker movl 8(%esp),%ecx 319*8fb009dcSAndroid Build Coastguard Worker movl 12(%esp),%esi 320*8fb009dcSAndroid Build Coastguard Worker movl 20(%esp),%edx 321*8fb009dcSAndroid Build Coastguard Worker movl 24(%esp),%edi 322*8fb009dcSAndroid Build Coastguard Worker addl $857760878,%ebp 323*8fb009dcSAndroid Build Coastguard Worker addl $2036477234,%ecx 324*8fb009dcSAndroid Build Coastguard Worker addl $1797285236,%esi 325*8fb009dcSAndroid Build Coastguard Worker addl 84(%esp),%edx 326*8fb009dcSAndroid Build Coastguard Worker addl 88(%esp),%edi 327*8fb009dcSAndroid Build Coastguard Worker movl %ebp,4(%esp) 328*8fb009dcSAndroid Build Coastguard Worker movl %ecx,8(%esp) 329*8fb009dcSAndroid Build Coastguard Worker movl %esi,12(%esp) 330*8fb009dcSAndroid Build Coastguard Worker movl %edx,20(%esp) 331*8fb009dcSAndroid Build Coastguard Worker movl %edi,24(%esp) 332*8fb009dcSAndroid Build Coastguard Worker movl 28(%esp),%ebp 333*8fb009dcSAndroid Build Coastguard Worker movl 40(%esp),%ecx 334*8fb009dcSAndroid Build Coastguard Worker movl 44(%esp),%esi 335*8fb009dcSAndroid Build Coastguard Worker movl 52(%esp),%edx 336*8fb009dcSAndroid Build Coastguard Worker movl 60(%esp),%edi 337*8fb009dcSAndroid Build Coastguard Worker addl 92(%esp),%ebp 338*8fb009dcSAndroid Build Coastguard Worker addl 104(%esp),%ecx 339*8fb009dcSAndroid Build Coastguard Worker addl 108(%esp),%esi 340*8fb009dcSAndroid Build Coastguard Worker addl 116(%esp),%edx 341*8fb009dcSAndroid Build Coastguard Worker addl 124(%esp),%edi 342*8fb009dcSAndroid Build Coastguard Worker movl %ebp,28(%esp) 343*8fb009dcSAndroid Build Coastguard Worker movl 156(%esp),%ebp 344*8fb009dcSAndroid Build Coastguard Worker movl %ecx,40(%esp) 345*8fb009dcSAndroid Build Coastguard Worker movl 152(%esp),%ecx 346*8fb009dcSAndroid Build Coastguard Worker movl %esi,44(%esp) 347*8fb009dcSAndroid Build Coastguard Worker xorl %esi,%esi 348*8fb009dcSAndroid Build Coastguard Worker movl %edx,52(%esp) 349*8fb009dcSAndroid Build Coastguard Worker movl %edi,60(%esp) 350*8fb009dcSAndroid Build Coastguard Worker xorl %eax,%eax 351*8fb009dcSAndroid Build Coastguard Worker xorl %edx,%edx 352*8fb009dcSAndroid Build Coastguard Worker.L005tail_loop: 353*8fb009dcSAndroid Build Coastguard Worker movb (%esi,%ebp,1),%al 354*8fb009dcSAndroid Build Coastguard Worker movb (%esp,%esi,1),%dl 355*8fb009dcSAndroid Build Coastguard Worker leal 1(%esi),%esi 356*8fb009dcSAndroid Build Coastguard Worker xorb %dl,%al 357*8fb009dcSAndroid Build Coastguard Worker movb %al,-1(%ecx,%esi,1) 358*8fb009dcSAndroid Build Coastguard Worker decl %ebx 359*8fb009dcSAndroid Build Coastguard Worker jnz .L005tail_loop 360*8fb009dcSAndroid Build Coastguard Worker.L004done: 361*8fb009dcSAndroid Build Coastguard Worker addl $132,%esp 362*8fb009dcSAndroid Build Coastguard Worker popl %edi 363*8fb009dcSAndroid Build Coastguard Worker popl %esi 364*8fb009dcSAndroid Build Coastguard Worker popl %ebx 365*8fb009dcSAndroid Build Coastguard Worker popl %ebp 366*8fb009dcSAndroid Build Coastguard Worker ret 367*8fb009dcSAndroid Build Coastguard Worker.size ChaCha20_ctr32_nohw,.-.L_ChaCha20_ctr32_nohw_begin 368*8fb009dcSAndroid Build Coastguard Worker.globl ChaCha20_ctr32_ssse3 369*8fb009dcSAndroid Build Coastguard Worker.hidden ChaCha20_ctr32_ssse3 370*8fb009dcSAndroid Build Coastguard Worker.type ChaCha20_ctr32_ssse3,@function 371*8fb009dcSAndroid Build Coastguard Worker.align 16 372*8fb009dcSAndroid Build Coastguard WorkerChaCha20_ctr32_ssse3: 373*8fb009dcSAndroid Build Coastguard Worker.L_ChaCha20_ctr32_ssse3_begin: 374*8fb009dcSAndroid Build Coastguard Worker pushl %ebp 375*8fb009dcSAndroid Build Coastguard Worker pushl %ebx 376*8fb009dcSAndroid Build Coastguard Worker pushl %esi 377*8fb009dcSAndroid Build Coastguard Worker pushl %edi 378*8fb009dcSAndroid Build Coastguard Worker call .Lpic_point 379*8fb009dcSAndroid Build Coastguard Worker.Lpic_point: 380*8fb009dcSAndroid Build Coastguard Worker popl %eax 381*8fb009dcSAndroid Build Coastguard Worker movl 20(%esp),%edi 382*8fb009dcSAndroid Build Coastguard Worker movl 24(%esp),%esi 383*8fb009dcSAndroid Build Coastguard Worker movl 28(%esp),%ecx 384*8fb009dcSAndroid Build Coastguard Worker movl 32(%esp),%edx 385*8fb009dcSAndroid Build Coastguard Worker movl 36(%esp),%ebx 386*8fb009dcSAndroid Build Coastguard Worker movl %esp,%ebp 387*8fb009dcSAndroid Build Coastguard Worker subl $524,%esp 388*8fb009dcSAndroid Build Coastguard Worker andl $-64,%esp 389*8fb009dcSAndroid Build Coastguard Worker movl %ebp,512(%esp) 390*8fb009dcSAndroid Build Coastguard Worker leal .Lssse3_data-.Lpic_point(%eax),%eax 391*8fb009dcSAndroid Build Coastguard Worker movdqu (%ebx),%xmm3 392*8fb009dcSAndroid Build Coastguard Worker cmpl $256,%ecx 393*8fb009dcSAndroid Build Coastguard Worker jb .L0061x 394*8fb009dcSAndroid Build Coastguard Worker movl %edx,516(%esp) 395*8fb009dcSAndroid Build Coastguard Worker movl %ebx,520(%esp) 396*8fb009dcSAndroid Build Coastguard Worker subl $256,%ecx 397*8fb009dcSAndroid Build Coastguard Worker leal 384(%esp),%ebp 398*8fb009dcSAndroid Build Coastguard Worker movdqu (%edx),%xmm7 399*8fb009dcSAndroid Build Coastguard Worker pshufd $0,%xmm3,%xmm0 400*8fb009dcSAndroid Build Coastguard Worker pshufd $85,%xmm3,%xmm1 401*8fb009dcSAndroid Build Coastguard Worker pshufd $170,%xmm3,%xmm2 402*8fb009dcSAndroid Build Coastguard Worker pshufd $255,%xmm3,%xmm3 403*8fb009dcSAndroid Build Coastguard Worker paddd 48(%eax),%xmm0 404*8fb009dcSAndroid Build Coastguard Worker pshufd $0,%xmm7,%xmm4 405*8fb009dcSAndroid Build Coastguard Worker pshufd $85,%xmm7,%xmm5 406*8fb009dcSAndroid Build Coastguard Worker psubd 64(%eax),%xmm0 407*8fb009dcSAndroid Build Coastguard Worker pshufd $170,%xmm7,%xmm6 408*8fb009dcSAndroid Build Coastguard Worker pshufd $255,%xmm7,%xmm7 409*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm0,64(%ebp) 410*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm1,80(%ebp) 411*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm2,96(%ebp) 412*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm3,112(%ebp) 413*8fb009dcSAndroid Build Coastguard Worker movdqu 16(%edx),%xmm3 414*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm4,-64(%ebp) 415*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm5,-48(%ebp) 416*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm6,-32(%ebp) 417*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm7,-16(%ebp) 418*8fb009dcSAndroid Build Coastguard Worker movdqa 32(%eax),%xmm7 419*8fb009dcSAndroid Build Coastguard Worker leal 128(%esp),%ebx 420*8fb009dcSAndroid Build Coastguard Worker pshufd $0,%xmm3,%xmm0 421*8fb009dcSAndroid Build Coastguard Worker pshufd $85,%xmm3,%xmm1 422*8fb009dcSAndroid Build Coastguard Worker pshufd $170,%xmm3,%xmm2 423*8fb009dcSAndroid Build Coastguard Worker pshufd $255,%xmm3,%xmm3 424*8fb009dcSAndroid Build Coastguard Worker pshufd $0,%xmm7,%xmm4 425*8fb009dcSAndroid Build Coastguard Worker pshufd $85,%xmm7,%xmm5 426*8fb009dcSAndroid Build Coastguard Worker pshufd $170,%xmm7,%xmm6 427*8fb009dcSAndroid Build Coastguard Worker pshufd $255,%xmm7,%xmm7 428*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm0,(%ebp) 429*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm1,16(%ebp) 430*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm2,32(%ebp) 431*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm3,48(%ebp) 432*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm4,-128(%ebp) 433*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm5,-112(%ebp) 434*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm6,-96(%ebp) 435*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm7,-80(%ebp) 436*8fb009dcSAndroid Build Coastguard Worker leal 128(%esi),%esi 437*8fb009dcSAndroid Build Coastguard Worker leal 128(%edi),%edi 438*8fb009dcSAndroid Build Coastguard Worker jmp .L007outer_loop 439*8fb009dcSAndroid Build Coastguard Worker.align 16 440*8fb009dcSAndroid Build Coastguard Worker.L007outer_loop: 441*8fb009dcSAndroid Build Coastguard Worker movdqa -112(%ebp),%xmm1 442*8fb009dcSAndroid Build Coastguard Worker movdqa -96(%ebp),%xmm2 443*8fb009dcSAndroid Build Coastguard Worker movdqa -80(%ebp),%xmm3 444*8fb009dcSAndroid Build Coastguard Worker movdqa -48(%ebp),%xmm5 445*8fb009dcSAndroid Build Coastguard Worker movdqa -32(%ebp),%xmm6 446*8fb009dcSAndroid Build Coastguard Worker movdqa -16(%ebp),%xmm7 447*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm1,-112(%ebx) 448*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm2,-96(%ebx) 449*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm3,-80(%ebx) 450*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm5,-48(%ebx) 451*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm6,-32(%ebx) 452*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm7,-16(%ebx) 453*8fb009dcSAndroid Build Coastguard Worker movdqa 32(%ebp),%xmm2 454*8fb009dcSAndroid Build Coastguard Worker movdqa 48(%ebp),%xmm3 455*8fb009dcSAndroid Build Coastguard Worker movdqa 64(%ebp),%xmm4 456*8fb009dcSAndroid Build Coastguard Worker movdqa 80(%ebp),%xmm5 457*8fb009dcSAndroid Build Coastguard Worker movdqa 96(%ebp),%xmm6 458*8fb009dcSAndroid Build Coastguard Worker movdqa 112(%ebp),%xmm7 459*8fb009dcSAndroid Build Coastguard Worker paddd 64(%eax),%xmm4 460*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm2,32(%ebx) 461*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm3,48(%ebx) 462*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm4,64(%ebx) 463*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm5,80(%ebx) 464*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm6,96(%ebx) 465*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm7,112(%ebx) 466*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm4,64(%ebp) 467*8fb009dcSAndroid Build Coastguard Worker movdqa -128(%ebp),%xmm0 468*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm4,%xmm6 469*8fb009dcSAndroid Build Coastguard Worker movdqa -64(%ebp),%xmm3 470*8fb009dcSAndroid Build Coastguard Worker movdqa (%ebp),%xmm4 471*8fb009dcSAndroid Build Coastguard Worker movdqa 16(%ebp),%xmm5 472*8fb009dcSAndroid Build Coastguard Worker movl $10,%edx 473*8fb009dcSAndroid Build Coastguard Worker nop 474*8fb009dcSAndroid Build Coastguard Worker.align 16 475*8fb009dcSAndroid Build Coastguard Worker.L008loop: 476*8fb009dcSAndroid Build Coastguard Worker paddd %xmm3,%xmm0 477*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm3,%xmm2 478*8fb009dcSAndroid Build Coastguard Worker pxor %xmm0,%xmm6 479*8fb009dcSAndroid Build Coastguard Worker pshufb (%eax),%xmm6 480*8fb009dcSAndroid Build Coastguard Worker paddd %xmm6,%xmm4 481*8fb009dcSAndroid Build Coastguard Worker pxor %xmm4,%xmm2 482*8fb009dcSAndroid Build Coastguard Worker movdqa -48(%ebx),%xmm3 483*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm2,%xmm1 484*8fb009dcSAndroid Build Coastguard Worker pslld $12,%xmm2 485*8fb009dcSAndroid Build Coastguard Worker psrld $20,%xmm1 486*8fb009dcSAndroid Build Coastguard Worker por %xmm1,%xmm2 487*8fb009dcSAndroid Build Coastguard Worker movdqa -112(%ebx),%xmm1 488*8fb009dcSAndroid Build Coastguard Worker paddd %xmm2,%xmm0 489*8fb009dcSAndroid Build Coastguard Worker movdqa 80(%ebx),%xmm7 490*8fb009dcSAndroid Build Coastguard Worker pxor %xmm0,%xmm6 491*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm0,-128(%ebx) 492*8fb009dcSAndroid Build Coastguard Worker pshufb 16(%eax),%xmm6 493*8fb009dcSAndroid Build Coastguard Worker paddd %xmm6,%xmm4 494*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm6,64(%ebx) 495*8fb009dcSAndroid Build Coastguard Worker pxor %xmm4,%xmm2 496*8fb009dcSAndroid Build Coastguard Worker paddd %xmm3,%xmm1 497*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm2,%xmm0 498*8fb009dcSAndroid Build Coastguard Worker pslld $7,%xmm2 499*8fb009dcSAndroid Build Coastguard Worker psrld $25,%xmm0 500*8fb009dcSAndroid Build Coastguard Worker pxor %xmm1,%xmm7 501*8fb009dcSAndroid Build Coastguard Worker por %xmm0,%xmm2 502*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm4,(%ebx) 503*8fb009dcSAndroid Build Coastguard Worker pshufb (%eax),%xmm7 504*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm2,-64(%ebx) 505*8fb009dcSAndroid Build Coastguard Worker paddd %xmm7,%xmm5 506*8fb009dcSAndroid Build Coastguard Worker movdqa 32(%ebx),%xmm4 507*8fb009dcSAndroid Build Coastguard Worker pxor %xmm5,%xmm3 508*8fb009dcSAndroid Build Coastguard Worker movdqa -32(%ebx),%xmm2 509*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm3,%xmm0 510*8fb009dcSAndroid Build Coastguard Worker pslld $12,%xmm3 511*8fb009dcSAndroid Build Coastguard Worker psrld $20,%xmm0 512*8fb009dcSAndroid Build Coastguard Worker por %xmm0,%xmm3 513*8fb009dcSAndroid Build Coastguard Worker movdqa -96(%ebx),%xmm0 514*8fb009dcSAndroid Build Coastguard Worker paddd %xmm3,%xmm1 515*8fb009dcSAndroid Build Coastguard Worker movdqa 96(%ebx),%xmm6 516*8fb009dcSAndroid Build Coastguard Worker pxor %xmm1,%xmm7 517*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm1,-112(%ebx) 518*8fb009dcSAndroid Build Coastguard Worker pshufb 16(%eax),%xmm7 519*8fb009dcSAndroid Build Coastguard Worker paddd %xmm7,%xmm5 520*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm7,80(%ebx) 521*8fb009dcSAndroid Build Coastguard Worker pxor %xmm5,%xmm3 522*8fb009dcSAndroid Build Coastguard Worker paddd %xmm2,%xmm0 523*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm3,%xmm1 524*8fb009dcSAndroid Build Coastguard Worker pslld $7,%xmm3 525*8fb009dcSAndroid Build Coastguard Worker psrld $25,%xmm1 526*8fb009dcSAndroid Build Coastguard Worker pxor %xmm0,%xmm6 527*8fb009dcSAndroid Build Coastguard Worker por %xmm1,%xmm3 528*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm5,16(%ebx) 529*8fb009dcSAndroid Build Coastguard Worker pshufb (%eax),%xmm6 530*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm3,-48(%ebx) 531*8fb009dcSAndroid Build Coastguard Worker paddd %xmm6,%xmm4 532*8fb009dcSAndroid Build Coastguard Worker movdqa 48(%ebx),%xmm5 533*8fb009dcSAndroid Build Coastguard Worker pxor %xmm4,%xmm2 534*8fb009dcSAndroid Build Coastguard Worker movdqa -16(%ebx),%xmm3 535*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm2,%xmm1 536*8fb009dcSAndroid Build Coastguard Worker pslld $12,%xmm2 537*8fb009dcSAndroid Build Coastguard Worker psrld $20,%xmm1 538*8fb009dcSAndroid Build Coastguard Worker por %xmm1,%xmm2 539*8fb009dcSAndroid Build Coastguard Worker movdqa -80(%ebx),%xmm1 540*8fb009dcSAndroid Build Coastguard Worker paddd %xmm2,%xmm0 541*8fb009dcSAndroid Build Coastguard Worker movdqa 112(%ebx),%xmm7 542*8fb009dcSAndroid Build Coastguard Worker pxor %xmm0,%xmm6 543*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm0,-96(%ebx) 544*8fb009dcSAndroid Build Coastguard Worker pshufb 16(%eax),%xmm6 545*8fb009dcSAndroid Build Coastguard Worker paddd %xmm6,%xmm4 546*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm6,96(%ebx) 547*8fb009dcSAndroid Build Coastguard Worker pxor %xmm4,%xmm2 548*8fb009dcSAndroid Build Coastguard Worker paddd %xmm3,%xmm1 549*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm2,%xmm0 550*8fb009dcSAndroid Build Coastguard Worker pslld $7,%xmm2 551*8fb009dcSAndroid Build Coastguard Worker psrld $25,%xmm0 552*8fb009dcSAndroid Build Coastguard Worker pxor %xmm1,%xmm7 553*8fb009dcSAndroid Build Coastguard Worker por %xmm0,%xmm2 554*8fb009dcSAndroid Build Coastguard Worker pshufb (%eax),%xmm7 555*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm2,-32(%ebx) 556*8fb009dcSAndroid Build Coastguard Worker paddd %xmm7,%xmm5 557*8fb009dcSAndroid Build Coastguard Worker pxor %xmm5,%xmm3 558*8fb009dcSAndroid Build Coastguard Worker movdqa -48(%ebx),%xmm2 559*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm3,%xmm0 560*8fb009dcSAndroid Build Coastguard Worker pslld $12,%xmm3 561*8fb009dcSAndroid Build Coastguard Worker psrld $20,%xmm0 562*8fb009dcSAndroid Build Coastguard Worker por %xmm0,%xmm3 563*8fb009dcSAndroid Build Coastguard Worker movdqa -128(%ebx),%xmm0 564*8fb009dcSAndroid Build Coastguard Worker paddd %xmm3,%xmm1 565*8fb009dcSAndroid Build Coastguard Worker pxor %xmm1,%xmm7 566*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm1,-80(%ebx) 567*8fb009dcSAndroid Build Coastguard Worker pshufb 16(%eax),%xmm7 568*8fb009dcSAndroid Build Coastguard Worker paddd %xmm7,%xmm5 569*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm7,%xmm6 570*8fb009dcSAndroid Build Coastguard Worker pxor %xmm5,%xmm3 571*8fb009dcSAndroid Build Coastguard Worker paddd %xmm2,%xmm0 572*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm3,%xmm1 573*8fb009dcSAndroid Build Coastguard Worker pslld $7,%xmm3 574*8fb009dcSAndroid Build Coastguard Worker psrld $25,%xmm1 575*8fb009dcSAndroid Build Coastguard Worker pxor %xmm0,%xmm6 576*8fb009dcSAndroid Build Coastguard Worker por %xmm1,%xmm3 577*8fb009dcSAndroid Build Coastguard Worker pshufb (%eax),%xmm6 578*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm3,-16(%ebx) 579*8fb009dcSAndroid Build Coastguard Worker paddd %xmm6,%xmm4 580*8fb009dcSAndroid Build Coastguard Worker pxor %xmm4,%xmm2 581*8fb009dcSAndroid Build Coastguard Worker movdqa -32(%ebx),%xmm3 582*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm2,%xmm1 583*8fb009dcSAndroid Build Coastguard Worker pslld $12,%xmm2 584*8fb009dcSAndroid Build Coastguard Worker psrld $20,%xmm1 585*8fb009dcSAndroid Build Coastguard Worker por %xmm1,%xmm2 586*8fb009dcSAndroid Build Coastguard Worker movdqa -112(%ebx),%xmm1 587*8fb009dcSAndroid Build Coastguard Worker paddd %xmm2,%xmm0 588*8fb009dcSAndroid Build Coastguard Worker movdqa 64(%ebx),%xmm7 589*8fb009dcSAndroid Build Coastguard Worker pxor %xmm0,%xmm6 590*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm0,-128(%ebx) 591*8fb009dcSAndroid Build Coastguard Worker pshufb 16(%eax),%xmm6 592*8fb009dcSAndroid Build Coastguard Worker paddd %xmm6,%xmm4 593*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm6,112(%ebx) 594*8fb009dcSAndroid Build Coastguard Worker pxor %xmm4,%xmm2 595*8fb009dcSAndroid Build Coastguard Worker paddd %xmm3,%xmm1 596*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm2,%xmm0 597*8fb009dcSAndroid Build Coastguard Worker pslld $7,%xmm2 598*8fb009dcSAndroid Build Coastguard Worker psrld $25,%xmm0 599*8fb009dcSAndroid Build Coastguard Worker pxor %xmm1,%xmm7 600*8fb009dcSAndroid Build Coastguard Worker por %xmm0,%xmm2 601*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm4,32(%ebx) 602*8fb009dcSAndroid Build Coastguard Worker pshufb (%eax),%xmm7 603*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm2,-48(%ebx) 604*8fb009dcSAndroid Build Coastguard Worker paddd %xmm7,%xmm5 605*8fb009dcSAndroid Build Coastguard Worker movdqa (%ebx),%xmm4 606*8fb009dcSAndroid Build Coastguard Worker pxor %xmm5,%xmm3 607*8fb009dcSAndroid Build Coastguard Worker movdqa -16(%ebx),%xmm2 608*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm3,%xmm0 609*8fb009dcSAndroid Build Coastguard Worker pslld $12,%xmm3 610*8fb009dcSAndroid Build Coastguard Worker psrld $20,%xmm0 611*8fb009dcSAndroid Build Coastguard Worker por %xmm0,%xmm3 612*8fb009dcSAndroid Build Coastguard Worker movdqa -96(%ebx),%xmm0 613*8fb009dcSAndroid Build Coastguard Worker paddd %xmm3,%xmm1 614*8fb009dcSAndroid Build Coastguard Worker movdqa 80(%ebx),%xmm6 615*8fb009dcSAndroid Build Coastguard Worker pxor %xmm1,%xmm7 616*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm1,-112(%ebx) 617*8fb009dcSAndroid Build Coastguard Worker pshufb 16(%eax),%xmm7 618*8fb009dcSAndroid Build Coastguard Worker paddd %xmm7,%xmm5 619*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm7,64(%ebx) 620*8fb009dcSAndroid Build Coastguard Worker pxor %xmm5,%xmm3 621*8fb009dcSAndroid Build Coastguard Worker paddd %xmm2,%xmm0 622*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm3,%xmm1 623*8fb009dcSAndroid Build Coastguard Worker pslld $7,%xmm3 624*8fb009dcSAndroid Build Coastguard Worker psrld $25,%xmm1 625*8fb009dcSAndroid Build Coastguard Worker pxor %xmm0,%xmm6 626*8fb009dcSAndroid Build Coastguard Worker por %xmm1,%xmm3 627*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm5,48(%ebx) 628*8fb009dcSAndroid Build Coastguard Worker pshufb (%eax),%xmm6 629*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm3,-32(%ebx) 630*8fb009dcSAndroid Build Coastguard Worker paddd %xmm6,%xmm4 631*8fb009dcSAndroid Build Coastguard Worker movdqa 16(%ebx),%xmm5 632*8fb009dcSAndroid Build Coastguard Worker pxor %xmm4,%xmm2 633*8fb009dcSAndroid Build Coastguard Worker movdqa -64(%ebx),%xmm3 634*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm2,%xmm1 635*8fb009dcSAndroid Build Coastguard Worker pslld $12,%xmm2 636*8fb009dcSAndroid Build Coastguard Worker psrld $20,%xmm1 637*8fb009dcSAndroid Build Coastguard Worker por %xmm1,%xmm2 638*8fb009dcSAndroid Build Coastguard Worker movdqa -80(%ebx),%xmm1 639*8fb009dcSAndroid Build Coastguard Worker paddd %xmm2,%xmm0 640*8fb009dcSAndroid Build Coastguard Worker movdqa 96(%ebx),%xmm7 641*8fb009dcSAndroid Build Coastguard Worker pxor %xmm0,%xmm6 642*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm0,-96(%ebx) 643*8fb009dcSAndroid Build Coastguard Worker pshufb 16(%eax),%xmm6 644*8fb009dcSAndroid Build Coastguard Worker paddd %xmm6,%xmm4 645*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm6,80(%ebx) 646*8fb009dcSAndroid Build Coastguard Worker pxor %xmm4,%xmm2 647*8fb009dcSAndroid Build Coastguard Worker paddd %xmm3,%xmm1 648*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm2,%xmm0 649*8fb009dcSAndroid Build Coastguard Worker pslld $7,%xmm2 650*8fb009dcSAndroid Build Coastguard Worker psrld $25,%xmm0 651*8fb009dcSAndroid Build Coastguard Worker pxor %xmm1,%xmm7 652*8fb009dcSAndroid Build Coastguard Worker por %xmm0,%xmm2 653*8fb009dcSAndroid Build Coastguard Worker pshufb (%eax),%xmm7 654*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm2,-16(%ebx) 655*8fb009dcSAndroid Build Coastguard Worker paddd %xmm7,%xmm5 656*8fb009dcSAndroid Build Coastguard Worker pxor %xmm5,%xmm3 657*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm3,%xmm0 658*8fb009dcSAndroid Build Coastguard Worker pslld $12,%xmm3 659*8fb009dcSAndroid Build Coastguard Worker psrld $20,%xmm0 660*8fb009dcSAndroid Build Coastguard Worker por %xmm0,%xmm3 661*8fb009dcSAndroid Build Coastguard Worker movdqa -128(%ebx),%xmm0 662*8fb009dcSAndroid Build Coastguard Worker paddd %xmm3,%xmm1 663*8fb009dcSAndroid Build Coastguard Worker movdqa 64(%ebx),%xmm6 664*8fb009dcSAndroid Build Coastguard Worker pxor %xmm1,%xmm7 665*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm1,-80(%ebx) 666*8fb009dcSAndroid Build Coastguard Worker pshufb 16(%eax),%xmm7 667*8fb009dcSAndroid Build Coastguard Worker paddd %xmm7,%xmm5 668*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm7,96(%ebx) 669*8fb009dcSAndroid Build Coastguard Worker pxor %xmm5,%xmm3 670*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm3,%xmm1 671*8fb009dcSAndroid Build Coastguard Worker pslld $7,%xmm3 672*8fb009dcSAndroid Build Coastguard Worker psrld $25,%xmm1 673*8fb009dcSAndroid Build Coastguard Worker por %xmm1,%xmm3 674*8fb009dcSAndroid Build Coastguard Worker decl %edx 675*8fb009dcSAndroid Build Coastguard Worker jnz .L008loop 676*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm3,-64(%ebx) 677*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm4,(%ebx) 678*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm5,16(%ebx) 679*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm6,64(%ebx) 680*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm7,96(%ebx) 681*8fb009dcSAndroid Build Coastguard Worker movdqa -112(%ebx),%xmm1 682*8fb009dcSAndroid Build Coastguard Worker movdqa -96(%ebx),%xmm2 683*8fb009dcSAndroid Build Coastguard Worker movdqa -80(%ebx),%xmm3 684*8fb009dcSAndroid Build Coastguard Worker paddd -128(%ebp),%xmm0 685*8fb009dcSAndroid Build Coastguard Worker paddd -112(%ebp),%xmm1 686*8fb009dcSAndroid Build Coastguard Worker paddd -96(%ebp),%xmm2 687*8fb009dcSAndroid Build Coastguard Worker paddd -80(%ebp),%xmm3 688*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm0,%xmm6 689*8fb009dcSAndroid Build Coastguard Worker punpckldq %xmm1,%xmm0 690*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm2,%xmm7 691*8fb009dcSAndroid Build Coastguard Worker punpckldq %xmm3,%xmm2 692*8fb009dcSAndroid Build Coastguard Worker punpckhdq %xmm1,%xmm6 693*8fb009dcSAndroid Build Coastguard Worker punpckhdq %xmm3,%xmm7 694*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm0,%xmm1 695*8fb009dcSAndroid Build Coastguard Worker punpcklqdq %xmm2,%xmm0 696*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm6,%xmm3 697*8fb009dcSAndroid Build Coastguard Worker punpcklqdq %xmm7,%xmm6 698*8fb009dcSAndroid Build Coastguard Worker punpckhqdq %xmm2,%xmm1 699*8fb009dcSAndroid Build Coastguard Worker punpckhqdq %xmm7,%xmm3 700*8fb009dcSAndroid Build Coastguard Worker movdqu -128(%esi),%xmm4 701*8fb009dcSAndroid Build Coastguard Worker movdqu -64(%esi),%xmm5 702*8fb009dcSAndroid Build Coastguard Worker movdqu (%esi),%xmm2 703*8fb009dcSAndroid Build Coastguard Worker movdqu 64(%esi),%xmm7 704*8fb009dcSAndroid Build Coastguard Worker leal 16(%esi),%esi 705*8fb009dcSAndroid Build Coastguard Worker pxor %xmm0,%xmm4 706*8fb009dcSAndroid Build Coastguard Worker movdqa -64(%ebx),%xmm0 707*8fb009dcSAndroid Build Coastguard Worker pxor %xmm1,%xmm5 708*8fb009dcSAndroid Build Coastguard Worker movdqa -48(%ebx),%xmm1 709*8fb009dcSAndroid Build Coastguard Worker pxor %xmm2,%xmm6 710*8fb009dcSAndroid Build Coastguard Worker movdqa -32(%ebx),%xmm2 711*8fb009dcSAndroid Build Coastguard Worker pxor %xmm3,%xmm7 712*8fb009dcSAndroid Build Coastguard Worker movdqa -16(%ebx),%xmm3 713*8fb009dcSAndroid Build Coastguard Worker movdqu %xmm4,-128(%edi) 714*8fb009dcSAndroid Build Coastguard Worker movdqu %xmm5,-64(%edi) 715*8fb009dcSAndroid Build Coastguard Worker movdqu %xmm6,(%edi) 716*8fb009dcSAndroid Build Coastguard Worker movdqu %xmm7,64(%edi) 717*8fb009dcSAndroid Build Coastguard Worker leal 16(%edi),%edi 718*8fb009dcSAndroid Build Coastguard Worker paddd -64(%ebp),%xmm0 719*8fb009dcSAndroid Build Coastguard Worker paddd -48(%ebp),%xmm1 720*8fb009dcSAndroid Build Coastguard Worker paddd -32(%ebp),%xmm2 721*8fb009dcSAndroid Build Coastguard Worker paddd -16(%ebp),%xmm3 722*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm0,%xmm6 723*8fb009dcSAndroid Build Coastguard Worker punpckldq %xmm1,%xmm0 724*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm2,%xmm7 725*8fb009dcSAndroid Build Coastguard Worker punpckldq %xmm3,%xmm2 726*8fb009dcSAndroid Build Coastguard Worker punpckhdq %xmm1,%xmm6 727*8fb009dcSAndroid Build Coastguard Worker punpckhdq %xmm3,%xmm7 728*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm0,%xmm1 729*8fb009dcSAndroid Build Coastguard Worker punpcklqdq %xmm2,%xmm0 730*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm6,%xmm3 731*8fb009dcSAndroid Build Coastguard Worker punpcklqdq %xmm7,%xmm6 732*8fb009dcSAndroid Build Coastguard Worker punpckhqdq %xmm2,%xmm1 733*8fb009dcSAndroid Build Coastguard Worker punpckhqdq %xmm7,%xmm3 734*8fb009dcSAndroid Build Coastguard Worker movdqu -128(%esi),%xmm4 735*8fb009dcSAndroid Build Coastguard Worker movdqu -64(%esi),%xmm5 736*8fb009dcSAndroid Build Coastguard Worker movdqu (%esi),%xmm2 737*8fb009dcSAndroid Build Coastguard Worker movdqu 64(%esi),%xmm7 738*8fb009dcSAndroid Build Coastguard Worker leal 16(%esi),%esi 739*8fb009dcSAndroid Build Coastguard Worker pxor %xmm0,%xmm4 740*8fb009dcSAndroid Build Coastguard Worker movdqa (%ebx),%xmm0 741*8fb009dcSAndroid Build Coastguard Worker pxor %xmm1,%xmm5 742*8fb009dcSAndroid Build Coastguard Worker movdqa 16(%ebx),%xmm1 743*8fb009dcSAndroid Build Coastguard Worker pxor %xmm2,%xmm6 744*8fb009dcSAndroid Build Coastguard Worker movdqa 32(%ebx),%xmm2 745*8fb009dcSAndroid Build Coastguard Worker pxor %xmm3,%xmm7 746*8fb009dcSAndroid Build Coastguard Worker movdqa 48(%ebx),%xmm3 747*8fb009dcSAndroid Build Coastguard Worker movdqu %xmm4,-128(%edi) 748*8fb009dcSAndroid Build Coastguard Worker movdqu %xmm5,-64(%edi) 749*8fb009dcSAndroid Build Coastguard Worker movdqu %xmm6,(%edi) 750*8fb009dcSAndroid Build Coastguard Worker movdqu %xmm7,64(%edi) 751*8fb009dcSAndroid Build Coastguard Worker leal 16(%edi),%edi 752*8fb009dcSAndroid Build Coastguard Worker paddd (%ebp),%xmm0 753*8fb009dcSAndroid Build Coastguard Worker paddd 16(%ebp),%xmm1 754*8fb009dcSAndroid Build Coastguard Worker paddd 32(%ebp),%xmm2 755*8fb009dcSAndroid Build Coastguard Worker paddd 48(%ebp),%xmm3 756*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm0,%xmm6 757*8fb009dcSAndroid Build Coastguard Worker punpckldq %xmm1,%xmm0 758*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm2,%xmm7 759*8fb009dcSAndroid Build Coastguard Worker punpckldq %xmm3,%xmm2 760*8fb009dcSAndroid Build Coastguard Worker punpckhdq %xmm1,%xmm6 761*8fb009dcSAndroid Build Coastguard Worker punpckhdq %xmm3,%xmm7 762*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm0,%xmm1 763*8fb009dcSAndroid Build Coastguard Worker punpcklqdq %xmm2,%xmm0 764*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm6,%xmm3 765*8fb009dcSAndroid Build Coastguard Worker punpcklqdq %xmm7,%xmm6 766*8fb009dcSAndroid Build Coastguard Worker punpckhqdq %xmm2,%xmm1 767*8fb009dcSAndroid Build Coastguard Worker punpckhqdq %xmm7,%xmm3 768*8fb009dcSAndroid Build Coastguard Worker movdqu -128(%esi),%xmm4 769*8fb009dcSAndroid Build Coastguard Worker movdqu -64(%esi),%xmm5 770*8fb009dcSAndroid Build Coastguard Worker movdqu (%esi),%xmm2 771*8fb009dcSAndroid Build Coastguard Worker movdqu 64(%esi),%xmm7 772*8fb009dcSAndroid Build Coastguard Worker leal 16(%esi),%esi 773*8fb009dcSAndroid Build Coastguard Worker pxor %xmm0,%xmm4 774*8fb009dcSAndroid Build Coastguard Worker movdqa 64(%ebx),%xmm0 775*8fb009dcSAndroid Build Coastguard Worker pxor %xmm1,%xmm5 776*8fb009dcSAndroid Build Coastguard Worker movdqa 80(%ebx),%xmm1 777*8fb009dcSAndroid Build Coastguard Worker pxor %xmm2,%xmm6 778*8fb009dcSAndroid Build Coastguard Worker movdqa 96(%ebx),%xmm2 779*8fb009dcSAndroid Build Coastguard Worker pxor %xmm3,%xmm7 780*8fb009dcSAndroid Build Coastguard Worker movdqa 112(%ebx),%xmm3 781*8fb009dcSAndroid Build Coastguard Worker movdqu %xmm4,-128(%edi) 782*8fb009dcSAndroid Build Coastguard Worker movdqu %xmm5,-64(%edi) 783*8fb009dcSAndroid Build Coastguard Worker movdqu %xmm6,(%edi) 784*8fb009dcSAndroid Build Coastguard Worker movdqu %xmm7,64(%edi) 785*8fb009dcSAndroid Build Coastguard Worker leal 16(%edi),%edi 786*8fb009dcSAndroid Build Coastguard Worker paddd 64(%ebp),%xmm0 787*8fb009dcSAndroid Build Coastguard Worker paddd 80(%ebp),%xmm1 788*8fb009dcSAndroid Build Coastguard Worker paddd 96(%ebp),%xmm2 789*8fb009dcSAndroid Build Coastguard Worker paddd 112(%ebp),%xmm3 790*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm0,%xmm6 791*8fb009dcSAndroid Build Coastguard Worker punpckldq %xmm1,%xmm0 792*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm2,%xmm7 793*8fb009dcSAndroid Build Coastguard Worker punpckldq %xmm3,%xmm2 794*8fb009dcSAndroid Build Coastguard Worker punpckhdq %xmm1,%xmm6 795*8fb009dcSAndroid Build Coastguard Worker punpckhdq %xmm3,%xmm7 796*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm0,%xmm1 797*8fb009dcSAndroid Build Coastguard Worker punpcklqdq %xmm2,%xmm0 798*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm6,%xmm3 799*8fb009dcSAndroid Build Coastguard Worker punpcklqdq %xmm7,%xmm6 800*8fb009dcSAndroid Build Coastguard Worker punpckhqdq %xmm2,%xmm1 801*8fb009dcSAndroid Build Coastguard Worker punpckhqdq %xmm7,%xmm3 802*8fb009dcSAndroid Build Coastguard Worker movdqu -128(%esi),%xmm4 803*8fb009dcSAndroid Build Coastguard Worker movdqu -64(%esi),%xmm5 804*8fb009dcSAndroid Build Coastguard Worker movdqu (%esi),%xmm2 805*8fb009dcSAndroid Build Coastguard Worker movdqu 64(%esi),%xmm7 806*8fb009dcSAndroid Build Coastguard Worker leal 208(%esi),%esi 807*8fb009dcSAndroid Build Coastguard Worker pxor %xmm0,%xmm4 808*8fb009dcSAndroid Build Coastguard Worker pxor %xmm1,%xmm5 809*8fb009dcSAndroid Build Coastguard Worker pxor %xmm2,%xmm6 810*8fb009dcSAndroid Build Coastguard Worker pxor %xmm3,%xmm7 811*8fb009dcSAndroid Build Coastguard Worker movdqu %xmm4,-128(%edi) 812*8fb009dcSAndroid Build Coastguard Worker movdqu %xmm5,-64(%edi) 813*8fb009dcSAndroid Build Coastguard Worker movdqu %xmm6,(%edi) 814*8fb009dcSAndroid Build Coastguard Worker movdqu %xmm7,64(%edi) 815*8fb009dcSAndroid Build Coastguard Worker leal 208(%edi),%edi 816*8fb009dcSAndroid Build Coastguard Worker subl $256,%ecx 817*8fb009dcSAndroid Build Coastguard Worker jnc .L007outer_loop 818*8fb009dcSAndroid Build Coastguard Worker addl $256,%ecx 819*8fb009dcSAndroid Build Coastguard Worker jz .L009done 820*8fb009dcSAndroid Build Coastguard Worker movl 520(%esp),%ebx 821*8fb009dcSAndroid Build Coastguard Worker leal -128(%esi),%esi 822*8fb009dcSAndroid Build Coastguard Worker movl 516(%esp),%edx 823*8fb009dcSAndroid Build Coastguard Worker leal -128(%edi),%edi 824*8fb009dcSAndroid Build Coastguard Worker movd 64(%ebp),%xmm2 825*8fb009dcSAndroid Build Coastguard Worker movdqu (%ebx),%xmm3 826*8fb009dcSAndroid Build Coastguard Worker paddd 96(%eax),%xmm2 827*8fb009dcSAndroid Build Coastguard Worker pand 112(%eax),%xmm3 828*8fb009dcSAndroid Build Coastguard Worker por %xmm2,%xmm3 829*8fb009dcSAndroid Build Coastguard Worker.L0061x: 830*8fb009dcSAndroid Build Coastguard Worker movdqa 32(%eax),%xmm0 831*8fb009dcSAndroid Build Coastguard Worker movdqu (%edx),%xmm1 832*8fb009dcSAndroid Build Coastguard Worker movdqu 16(%edx),%xmm2 833*8fb009dcSAndroid Build Coastguard Worker movdqa (%eax),%xmm6 834*8fb009dcSAndroid Build Coastguard Worker movdqa 16(%eax),%xmm7 835*8fb009dcSAndroid Build Coastguard Worker movl %ebp,48(%esp) 836*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm0,(%esp) 837*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm1,16(%esp) 838*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm2,32(%esp) 839*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm3,48(%esp) 840*8fb009dcSAndroid Build Coastguard Worker movl $10,%edx 841*8fb009dcSAndroid Build Coastguard Worker jmp .L010loop1x 842*8fb009dcSAndroid Build Coastguard Worker.align 16 843*8fb009dcSAndroid Build Coastguard Worker.L011outer1x: 844*8fb009dcSAndroid Build Coastguard Worker movdqa 80(%eax),%xmm3 845*8fb009dcSAndroid Build Coastguard Worker movdqa (%esp),%xmm0 846*8fb009dcSAndroid Build Coastguard Worker movdqa 16(%esp),%xmm1 847*8fb009dcSAndroid Build Coastguard Worker movdqa 32(%esp),%xmm2 848*8fb009dcSAndroid Build Coastguard Worker paddd 48(%esp),%xmm3 849*8fb009dcSAndroid Build Coastguard Worker movl $10,%edx 850*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm3,48(%esp) 851*8fb009dcSAndroid Build Coastguard Worker jmp .L010loop1x 852*8fb009dcSAndroid Build Coastguard Worker.align 16 853*8fb009dcSAndroid Build Coastguard Worker.L010loop1x: 854*8fb009dcSAndroid Build Coastguard Worker paddd %xmm1,%xmm0 855*8fb009dcSAndroid Build Coastguard Worker pxor %xmm0,%xmm3 856*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,222 857*8fb009dcSAndroid Build Coastguard Worker paddd %xmm3,%xmm2 858*8fb009dcSAndroid Build Coastguard Worker pxor %xmm2,%xmm1 859*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm1,%xmm4 860*8fb009dcSAndroid Build Coastguard Worker psrld $20,%xmm1 861*8fb009dcSAndroid Build Coastguard Worker pslld $12,%xmm4 862*8fb009dcSAndroid Build Coastguard Worker por %xmm4,%xmm1 863*8fb009dcSAndroid Build Coastguard Worker paddd %xmm1,%xmm0 864*8fb009dcSAndroid Build Coastguard Worker pxor %xmm0,%xmm3 865*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,223 866*8fb009dcSAndroid Build Coastguard Worker paddd %xmm3,%xmm2 867*8fb009dcSAndroid Build Coastguard Worker pxor %xmm2,%xmm1 868*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm1,%xmm4 869*8fb009dcSAndroid Build Coastguard Worker psrld $25,%xmm1 870*8fb009dcSAndroid Build Coastguard Worker pslld $7,%xmm4 871*8fb009dcSAndroid Build Coastguard Worker por %xmm4,%xmm1 872*8fb009dcSAndroid Build Coastguard Worker pshufd $78,%xmm2,%xmm2 873*8fb009dcSAndroid Build Coastguard Worker pshufd $57,%xmm1,%xmm1 874*8fb009dcSAndroid Build Coastguard Worker pshufd $147,%xmm3,%xmm3 875*8fb009dcSAndroid Build Coastguard Worker nop 876*8fb009dcSAndroid Build Coastguard Worker paddd %xmm1,%xmm0 877*8fb009dcSAndroid Build Coastguard Worker pxor %xmm0,%xmm3 878*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,222 879*8fb009dcSAndroid Build Coastguard Worker paddd %xmm3,%xmm2 880*8fb009dcSAndroid Build Coastguard Worker pxor %xmm2,%xmm1 881*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm1,%xmm4 882*8fb009dcSAndroid Build Coastguard Worker psrld $20,%xmm1 883*8fb009dcSAndroid Build Coastguard Worker pslld $12,%xmm4 884*8fb009dcSAndroid Build Coastguard Worker por %xmm4,%xmm1 885*8fb009dcSAndroid Build Coastguard Worker paddd %xmm1,%xmm0 886*8fb009dcSAndroid Build Coastguard Worker pxor %xmm0,%xmm3 887*8fb009dcSAndroid Build Coastguard Worker.byte 102,15,56,0,223 888*8fb009dcSAndroid Build Coastguard Worker paddd %xmm3,%xmm2 889*8fb009dcSAndroid Build Coastguard Worker pxor %xmm2,%xmm1 890*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm1,%xmm4 891*8fb009dcSAndroid Build Coastguard Worker psrld $25,%xmm1 892*8fb009dcSAndroid Build Coastguard Worker pslld $7,%xmm4 893*8fb009dcSAndroid Build Coastguard Worker por %xmm4,%xmm1 894*8fb009dcSAndroid Build Coastguard Worker pshufd $78,%xmm2,%xmm2 895*8fb009dcSAndroid Build Coastguard Worker pshufd $147,%xmm1,%xmm1 896*8fb009dcSAndroid Build Coastguard Worker pshufd $57,%xmm3,%xmm3 897*8fb009dcSAndroid Build Coastguard Worker decl %edx 898*8fb009dcSAndroid Build Coastguard Worker jnz .L010loop1x 899*8fb009dcSAndroid Build Coastguard Worker paddd (%esp),%xmm0 900*8fb009dcSAndroid Build Coastguard Worker paddd 16(%esp),%xmm1 901*8fb009dcSAndroid Build Coastguard Worker paddd 32(%esp),%xmm2 902*8fb009dcSAndroid Build Coastguard Worker paddd 48(%esp),%xmm3 903*8fb009dcSAndroid Build Coastguard Worker cmpl $64,%ecx 904*8fb009dcSAndroid Build Coastguard Worker jb .L012tail 905*8fb009dcSAndroid Build Coastguard Worker movdqu (%esi),%xmm4 906*8fb009dcSAndroid Build Coastguard Worker movdqu 16(%esi),%xmm5 907*8fb009dcSAndroid Build Coastguard Worker pxor %xmm4,%xmm0 908*8fb009dcSAndroid Build Coastguard Worker movdqu 32(%esi),%xmm4 909*8fb009dcSAndroid Build Coastguard Worker pxor %xmm5,%xmm1 910*8fb009dcSAndroid Build Coastguard Worker movdqu 48(%esi),%xmm5 911*8fb009dcSAndroid Build Coastguard Worker pxor %xmm4,%xmm2 912*8fb009dcSAndroid Build Coastguard Worker pxor %xmm5,%xmm3 913*8fb009dcSAndroid Build Coastguard Worker leal 64(%esi),%esi 914*8fb009dcSAndroid Build Coastguard Worker movdqu %xmm0,(%edi) 915*8fb009dcSAndroid Build Coastguard Worker movdqu %xmm1,16(%edi) 916*8fb009dcSAndroid Build Coastguard Worker movdqu %xmm2,32(%edi) 917*8fb009dcSAndroid Build Coastguard Worker movdqu %xmm3,48(%edi) 918*8fb009dcSAndroid Build Coastguard Worker leal 64(%edi),%edi 919*8fb009dcSAndroid Build Coastguard Worker subl $64,%ecx 920*8fb009dcSAndroid Build Coastguard Worker jnz .L011outer1x 921*8fb009dcSAndroid Build Coastguard Worker jmp .L009done 922*8fb009dcSAndroid Build Coastguard Worker.L012tail: 923*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm0,(%esp) 924*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm1,16(%esp) 925*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm2,32(%esp) 926*8fb009dcSAndroid Build Coastguard Worker movdqa %xmm3,48(%esp) 927*8fb009dcSAndroid Build Coastguard Worker xorl %eax,%eax 928*8fb009dcSAndroid Build Coastguard Worker xorl %edx,%edx 929*8fb009dcSAndroid Build Coastguard Worker xorl %ebp,%ebp 930*8fb009dcSAndroid Build Coastguard Worker.L013tail_loop: 931*8fb009dcSAndroid Build Coastguard Worker movb (%esp,%ebp,1),%al 932*8fb009dcSAndroid Build Coastguard Worker movb (%esi,%ebp,1),%dl 933*8fb009dcSAndroid Build Coastguard Worker leal 1(%ebp),%ebp 934*8fb009dcSAndroid Build Coastguard Worker xorb %dl,%al 935*8fb009dcSAndroid Build Coastguard Worker movb %al,-1(%edi,%ebp,1) 936*8fb009dcSAndroid Build Coastguard Worker decl %ecx 937*8fb009dcSAndroid Build Coastguard Worker jnz .L013tail_loop 938*8fb009dcSAndroid Build Coastguard Worker.L009done: 939*8fb009dcSAndroid Build Coastguard Worker movl 512(%esp),%esp 940*8fb009dcSAndroid Build Coastguard Worker popl %edi 941*8fb009dcSAndroid Build Coastguard Worker popl %esi 942*8fb009dcSAndroid Build Coastguard Worker popl %ebx 943*8fb009dcSAndroid Build Coastguard Worker popl %ebp 944*8fb009dcSAndroid Build Coastguard Worker ret 945*8fb009dcSAndroid Build Coastguard Worker.size ChaCha20_ctr32_ssse3,.-.L_ChaCha20_ctr32_ssse3_begin 946*8fb009dcSAndroid Build Coastguard Worker.align 64 947*8fb009dcSAndroid Build Coastguard Worker.Lssse3_data: 948*8fb009dcSAndroid Build Coastguard Worker.byte 2,3,0,1,6,7,4,5,10,11,8,9,14,15,12,13 949*8fb009dcSAndroid Build Coastguard Worker.byte 3,0,1,2,7,4,5,6,11,8,9,10,15,12,13,14 950*8fb009dcSAndroid Build Coastguard Worker.long 1634760805,857760878,2036477234,1797285236 951*8fb009dcSAndroid Build Coastguard Worker.long 0,1,2,3 952*8fb009dcSAndroid Build Coastguard Worker.long 4,4,4,4 953*8fb009dcSAndroid Build Coastguard Worker.long 1,0,0,0 954*8fb009dcSAndroid Build Coastguard Worker.long 4,0,0,0 955*8fb009dcSAndroid Build Coastguard Worker.long 0,-1,-1,-1 956*8fb009dcSAndroid Build Coastguard Worker.align 64 957*8fb009dcSAndroid Build Coastguard Worker.byte 67,104,97,67,104,97,50,48,32,102,111,114,32,120,56,54 958*8fb009dcSAndroid Build Coastguard Worker.byte 44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32 959*8fb009dcSAndroid Build Coastguard Worker.byte 60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111 960*8fb009dcSAndroid Build Coastguard Worker.byte 114,103,62,0 961*8fb009dcSAndroid Build Coastguard Worker#endif // !defined(OPENSSL_NO_ASM) && defined(OPENSSL_X86) && defined(__ELF__) 962