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 bn_mul_add_words 9*8fb009dcSAndroid Build Coastguard Worker.hidden bn_mul_add_words 10*8fb009dcSAndroid Build Coastguard Worker.type bn_mul_add_words,@function 11*8fb009dcSAndroid Build Coastguard Worker.align 16 12*8fb009dcSAndroid Build Coastguard Workerbn_mul_add_words: 13*8fb009dcSAndroid Build Coastguard Worker.L_bn_mul_add_words_begin: 14*8fb009dcSAndroid Build Coastguard Worker movl 4(%esp),%eax 15*8fb009dcSAndroid Build Coastguard Worker movl 8(%esp),%edx 16*8fb009dcSAndroid Build Coastguard Worker movl 12(%esp),%ecx 17*8fb009dcSAndroid Build Coastguard Worker movd 16(%esp),%mm0 18*8fb009dcSAndroid Build Coastguard Worker pxor %mm1,%mm1 19*8fb009dcSAndroid Build Coastguard Worker jmp .L000maw_sse2_entry 20*8fb009dcSAndroid Build Coastguard Worker.align 16 21*8fb009dcSAndroid Build Coastguard Worker.L001maw_sse2_unrolled: 22*8fb009dcSAndroid Build Coastguard Worker movd (%eax),%mm3 23*8fb009dcSAndroid Build Coastguard Worker paddq %mm3,%mm1 24*8fb009dcSAndroid Build Coastguard Worker movd (%edx),%mm2 25*8fb009dcSAndroid Build Coastguard Worker pmuludq %mm0,%mm2 26*8fb009dcSAndroid Build Coastguard Worker movd 4(%edx),%mm4 27*8fb009dcSAndroid Build Coastguard Worker pmuludq %mm0,%mm4 28*8fb009dcSAndroid Build Coastguard Worker movd 8(%edx),%mm6 29*8fb009dcSAndroid Build Coastguard Worker pmuludq %mm0,%mm6 30*8fb009dcSAndroid Build Coastguard Worker movd 12(%edx),%mm7 31*8fb009dcSAndroid Build Coastguard Worker pmuludq %mm0,%mm7 32*8fb009dcSAndroid Build Coastguard Worker paddq %mm2,%mm1 33*8fb009dcSAndroid Build Coastguard Worker movd 4(%eax),%mm3 34*8fb009dcSAndroid Build Coastguard Worker paddq %mm4,%mm3 35*8fb009dcSAndroid Build Coastguard Worker movd 8(%eax),%mm5 36*8fb009dcSAndroid Build Coastguard Worker paddq %mm6,%mm5 37*8fb009dcSAndroid Build Coastguard Worker movd 12(%eax),%mm4 38*8fb009dcSAndroid Build Coastguard Worker paddq %mm4,%mm7 39*8fb009dcSAndroid Build Coastguard Worker movd %mm1,(%eax) 40*8fb009dcSAndroid Build Coastguard Worker movd 16(%edx),%mm2 41*8fb009dcSAndroid Build Coastguard Worker pmuludq %mm0,%mm2 42*8fb009dcSAndroid Build Coastguard Worker psrlq $32,%mm1 43*8fb009dcSAndroid Build Coastguard Worker movd 20(%edx),%mm4 44*8fb009dcSAndroid Build Coastguard Worker pmuludq %mm0,%mm4 45*8fb009dcSAndroid Build Coastguard Worker paddq %mm3,%mm1 46*8fb009dcSAndroid Build Coastguard Worker movd 24(%edx),%mm6 47*8fb009dcSAndroid Build Coastguard Worker pmuludq %mm0,%mm6 48*8fb009dcSAndroid Build Coastguard Worker movd %mm1,4(%eax) 49*8fb009dcSAndroid Build Coastguard Worker psrlq $32,%mm1 50*8fb009dcSAndroid Build Coastguard Worker movd 28(%edx),%mm3 51*8fb009dcSAndroid Build Coastguard Worker addl $32,%edx 52*8fb009dcSAndroid Build Coastguard Worker pmuludq %mm0,%mm3 53*8fb009dcSAndroid Build Coastguard Worker paddq %mm5,%mm1 54*8fb009dcSAndroid Build Coastguard Worker movd 16(%eax),%mm5 55*8fb009dcSAndroid Build Coastguard Worker paddq %mm5,%mm2 56*8fb009dcSAndroid Build Coastguard Worker movd %mm1,8(%eax) 57*8fb009dcSAndroid Build Coastguard Worker psrlq $32,%mm1 58*8fb009dcSAndroid Build Coastguard Worker paddq %mm7,%mm1 59*8fb009dcSAndroid Build Coastguard Worker movd 20(%eax),%mm5 60*8fb009dcSAndroid Build Coastguard Worker paddq %mm5,%mm4 61*8fb009dcSAndroid Build Coastguard Worker movd %mm1,12(%eax) 62*8fb009dcSAndroid Build Coastguard Worker psrlq $32,%mm1 63*8fb009dcSAndroid Build Coastguard Worker paddq %mm2,%mm1 64*8fb009dcSAndroid Build Coastguard Worker movd 24(%eax),%mm5 65*8fb009dcSAndroid Build Coastguard Worker paddq %mm5,%mm6 66*8fb009dcSAndroid Build Coastguard Worker movd %mm1,16(%eax) 67*8fb009dcSAndroid Build Coastguard Worker psrlq $32,%mm1 68*8fb009dcSAndroid Build Coastguard Worker paddq %mm4,%mm1 69*8fb009dcSAndroid Build Coastguard Worker movd 28(%eax),%mm5 70*8fb009dcSAndroid Build Coastguard Worker paddq %mm5,%mm3 71*8fb009dcSAndroid Build Coastguard Worker movd %mm1,20(%eax) 72*8fb009dcSAndroid Build Coastguard Worker psrlq $32,%mm1 73*8fb009dcSAndroid Build Coastguard Worker paddq %mm6,%mm1 74*8fb009dcSAndroid Build Coastguard Worker movd %mm1,24(%eax) 75*8fb009dcSAndroid Build Coastguard Worker psrlq $32,%mm1 76*8fb009dcSAndroid Build Coastguard Worker paddq %mm3,%mm1 77*8fb009dcSAndroid Build Coastguard Worker movd %mm1,28(%eax) 78*8fb009dcSAndroid Build Coastguard Worker leal 32(%eax),%eax 79*8fb009dcSAndroid Build Coastguard Worker psrlq $32,%mm1 80*8fb009dcSAndroid Build Coastguard Worker subl $8,%ecx 81*8fb009dcSAndroid Build Coastguard Worker jz .L002maw_sse2_exit 82*8fb009dcSAndroid Build Coastguard Worker.L000maw_sse2_entry: 83*8fb009dcSAndroid Build Coastguard Worker testl $4294967288,%ecx 84*8fb009dcSAndroid Build Coastguard Worker jnz .L001maw_sse2_unrolled 85*8fb009dcSAndroid Build Coastguard Worker.align 4 86*8fb009dcSAndroid Build Coastguard Worker.L003maw_sse2_loop: 87*8fb009dcSAndroid Build Coastguard Worker movd (%edx),%mm2 88*8fb009dcSAndroid Build Coastguard Worker movd (%eax),%mm3 89*8fb009dcSAndroid Build Coastguard Worker pmuludq %mm0,%mm2 90*8fb009dcSAndroid Build Coastguard Worker leal 4(%edx),%edx 91*8fb009dcSAndroid Build Coastguard Worker paddq %mm3,%mm1 92*8fb009dcSAndroid Build Coastguard Worker paddq %mm2,%mm1 93*8fb009dcSAndroid Build Coastguard Worker movd %mm1,(%eax) 94*8fb009dcSAndroid Build Coastguard Worker subl $1,%ecx 95*8fb009dcSAndroid Build Coastguard Worker psrlq $32,%mm1 96*8fb009dcSAndroid Build Coastguard Worker leal 4(%eax),%eax 97*8fb009dcSAndroid Build Coastguard Worker jnz .L003maw_sse2_loop 98*8fb009dcSAndroid Build Coastguard Worker.L002maw_sse2_exit: 99*8fb009dcSAndroid Build Coastguard Worker movd %mm1,%eax 100*8fb009dcSAndroid Build Coastguard Worker emms 101*8fb009dcSAndroid Build Coastguard Worker ret 102*8fb009dcSAndroid Build Coastguard Worker popl %edi 103*8fb009dcSAndroid Build Coastguard Worker popl %esi 104*8fb009dcSAndroid Build Coastguard Worker popl %ebx 105*8fb009dcSAndroid Build Coastguard Worker popl %ebp 106*8fb009dcSAndroid Build Coastguard Worker ret 107*8fb009dcSAndroid Build Coastguard Worker.size bn_mul_add_words,.-.L_bn_mul_add_words_begin 108*8fb009dcSAndroid Build Coastguard Worker.globl bn_mul_words 109*8fb009dcSAndroid Build Coastguard Worker.hidden bn_mul_words 110*8fb009dcSAndroid Build Coastguard Worker.type bn_mul_words,@function 111*8fb009dcSAndroid Build Coastguard Worker.align 16 112*8fb009dcSAndroid Build Coastguard Workerbn_mul_words: 113*8fb009dcSAndroid Build Coastguard Worker.L_bn_mul_words_begin: 114*8fb009dcSAndroid Build Coastguard Worker movl 4(%esp),%eax 115*8fb009dcSAndroid Build Coastguard Worker movl 8(%esp),%edx 116*8fb009dcSAndroid Build Coastguard Worker movl 12(%esp),%ecx 117*8fb009dcSAndroid Build Coastguard Worker movd 16(%esp),%mm0 118*8fb009dcSAndroid Build Coastguard Worker pxor %mm1,%mm1 119*8fb009dcSAndroid Build Coastguard Worker.align 16 120*8fb009dcSAndroid Build Coastguard Worker.L004mw_sse2_loop: 121*8fb009dcSAndroid Build Coastguard Worker movd (%edx),%mm2 122*8fb009dcSAndroid Build Coastguard Worker pmuludq %mm0,%mm2 123*8fb009dcSAndroid Build Coastguard Worker leal 4(%edx),%edx 124*8fb009dcSAndroid Build Coastguard Worker paddq %mm2,%mm1 125*8fb009dcSAndroid Build Coastguard Worker movd %mm1,(%eax) 126*8fb009dcSAndroid Build Coastguard Worker subl $1,%ecx 127*8fb009dcSAndroid Build Coastguard Worker psrlq $32,%mm1 128*8fb009dcSAndroid Build Coastguard Worker leal 4(%eax),%eax 129*8fb009dcSAndroid Build Coastguard Worker jnz .L004mw_sse2_loop 130*8fb009dcSAndroid Build Coastguard Worker movd %mm1,%eax 131*8fb009dcSAndroid Build Coastguard Worker emms 132*8fb009dcSAndroid Build Coastguard Worker ret 133*8fb009dcSAndroid Build Coastguard Worker popl %edi 134*8fb009dcSAndroid Build Coastguard Worker popl %esi 135*8fb009dcSAndroid Build Coastguard Worker popl %ebx 136*8fb009dcSAndroid Build Coastguard Worker popl %ebp 137*8fb009dcSAndroid Build Coastguard Worker ret 138*8fb009dcSAndroid Build Coastguard Worker.size bn_mul_words,.-.L_bn_mul_words_begin 139*8fb009dcSAndroid Build Coastguard Worker.globl bn_sqr_words 140*8fb009dcSAndroid Build Coastguard Worker.hidden bn_sqr_words 141*8fb009dcSAndroid Build Coastguard Worker.type bn_sqr_words,@function 142*8fb009dcSAndroid Build Coastguard Worker.align 16 143*8fb009dcSAndroid Build Coastguard Workerbn_sqr_words: 144*8fb009dcSAndroid Build Coastguard Worker.L_bn_sqr_words_begin: 145*8fb009dcSAndroid Build Coastguard Worker movl 4(%esp),%eax 146*8fb009dcSAndroid Build Coastguard Worker movl 8(%esp),%edx 147*8fb009dcSAndroid Build Coastguard Worker movl 12(%esp),%ecx 148*8fb009dcSAndroid Build Coastguard Worker.align 16 149*8fb009dcSAndroid Build Coastguard Worker.L005sqr_sse2_loop: 150*8fb009dcSAndroid Build Coastguard Worker movd (%edx),%mm0 151*8fb009dcSAndroid Build Coastguard Worker pmuludq %mm0,%mm0 152*8fb009dcSAndroid Build Coastguard Worker leal 4(%edx),%edx 153*8fb009dcSAndroid Build Coastguard Worker movq %mm0,(%eax) 154*8fb009dcSAndroid Build Coastguard Worker subl $1,%ecx 155*8fb009dcSAndroid Build Coastguard Worker leal 8(%eax),%eax 156*8fb009dcSAndroid Build Coastguard Worker jnz .L005sqr_sse2_loop 157*8fb009dcSAndroid Build Coastguard Worker emms 158*8fb009dcSAndroid Build Coastguard Worker ret 159*8fb009dcSAndroid Build Coastguard Worker popl %edi 160*8fb009dcSAndroid Build Coastguard Worker popl %esi 161*8fb009dcSAndroid Build Coastguard Worker popl %ebx 162*8fb009dcSAndroid Build Coastguard Worker popl %ebp 163*8fb009dcSAndroid Build Coastguard Worker ret 164*8fb009dcSAndroid Build Coastguard Worker.size bn_sqr_words,.-.L_bn_sqr_words_begin 165*8fb009dcSAndroid Build Coastguard Worker.globl bn_div_words 166*8fb009dcSAndroid Build Coastguard Worker.hidden bn_div_words 167*8fb009dcSAndroid Build Coastguard Worker.type bn_div_words,@function 168*8fb009dcSAndroid Build Coastguard Worker.align 16 169*8fb009dcSAndroid Build Coastguard Workerbn_div_words: 170*8fb009dcSAndroid Build Coastguard Worker.L_bn_div_words_begin: 171*8fb009dcSAndroid Build Coastguard Worker movl 4(%esp),%edx 172*8fb009dcSAndroid Build Coastguard Worker movl 8(%esp),%eax 173*8fb009dcSAndroid Build Coastguard Worker movl 12(%esp),%ecx 174*8fb009dcSAndroid Build Coastguard Worker divl %ecx 175*8fb009dcSAndroid Build Coastguard Worker ret 176*8fb009dcSAndroid Build Coastguard Worker.size bn_div_words,.-.L_bn_div_words_begin 177*8fb009dcSAndroid Build Coastguard Worker.globl bn_add_words 178*8fb009dcSAndroid Build Coastguard Worker.hidden bn_add_words 179*8fb009dcSAndroid Build Coastguard Worker.type bn_add_words,@function 180*8fb009dcSAndroid Build Coastguard Worker.align 16 181*8fb009dcSAndroid Build Coastguard Workerbn_add_words: 182*8fb009dcSAndroid Build Coastguard Worker.L_bn_add_words_begin: 183*8fb009dcSAndroid Build Coastguard Worker pushl %ebp 184*8fb009dcSAndroid Build Coastguard Worker pushl %ebx 185*8fb009dcSAndroid Build Coastguard Worker pushl %esi 186*8fb009dcSAndroid Build Coastguard Worker pushl %edi 187*8fb009dcSAndroid Build Coastguard Worker 188*8fb009dcSAndroid Build Coastguard Worker movl 20(%esp),%ebx 189*8fb009dcSAndroid Build Coastguard Worker movl 24(%esp),%esi 190*8fb009dcSAndroid Build Coastguard Worker movl 28(%esp),%edi 191*8fb009dcSAndroid Build Coastguard Worker movl 32(%esp),%ebp 192*8fb009dcSAndroid Build Coastguard Worker xorl %eax,%eax 193*8fb009dcSAndroid Build Coastguard Worker andl $4294967288,%ebp 194*8fb009dcSAndroid Build Coastguard Worker jz .L006aw_finish 195*8fb009dcSAndroid Build Coastguard Worker.L007aw_loop: 196*8fb009dcSAndroid Build Coastguard Worker 197*8fb009dcSAndroid Build Coastguard Worker movl (%esi),%ecx 198*8fb009dcSAndroid Build Coastguard Worker movl (%edi),%edx 199*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ecx 200*8fb009dcSAndroid Build Coastguard Worker movl $0,%eax 201*8fb009dcSAndroid Build Coastguard Worker adcl %eax,%eax 202*8fb009dcSAndroid Build Coastguard Worker addl %edx,%ecx 203*8fb009dcSAndroid Build Coastguard Worker adcl $0,%eax 204*8fb009dcSAndroid Build Coastguard Worker movl %ecx,(%ebx) 205*8fb009dcSAndroid Build Coastguard Worker 206*8fb009dcSAndroid Build Coastguard Worker movl 4(%esi),%ecx 207*8fb009dcSAndroid Build Coastguard Worker movl 4(%edi),%edx 208*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ecx 209*8fb009dcSAndroid Build Coastguard Worker movl $0,%eax 210*8fb009dcSAndroid Build Coastguard Worker adcl %eax,%eax 211*8fb009dcSAndroid Build Coastguard Worker addl %edx,%ecx 212*8fb009dcSAndroid Build Coastguard Worker adcl $0,%eax 213*8fb009dcSAndroid Build Coastguard Worker movl %ecx,4(%ebx) 214*8fb009dcSAndroid Build Coastguard Worker 215*8fb009dcSAndroid Build Coastguard Worker movl 8(%esi),%ecx 216*8fb009dcSAndroid Build Coastguard Worker movl 8(%edi),%edx 217*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ecx 218*8fb009dcSAndroid Build Coastguard Worker movl $0,%eax 219*8fb009dcSAndroid Build Coastguard Worker adcl %eax,%eax 220*8fb009dcSAndroid Build Coastguard Worker addl %edx,%ecx 221*8fb009dcSAndroid Build Coastguard Worker adcl $0,%eax 222*8fb009dcSAndroid Build Coastguard Worker movl %ecx,8(%ebx) 223*8fb009dcSAndroid Build Coastguard Worker 224*8fb009dcSAndroid Build Coastguard Worker movl 12(%esi),%ecx 225*8fb009dcSAndroid Build Coastguard Worker movl 12(%edi),%edx 226*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ecx 227*8fb009dcSAndroid Build Coastguard Worker movl $0,%eax 228*8fb009dcSAndroid Build Coastguard Worker adcl %eax,%eax 229*8fb009dcSAndroid Build Coastguard Worker addl %edx,%ecx 230*8fb009dcSAndroid Build Coastguard Worker adcl $0,%eax 231*8fb009dcSAndroid Build Coastguard Worker movl %ecx,12(%ebx) 232*8fb009dcSAndroid Build Coastguard Worker 233*8fb009dcSAndroid Build Coastguard Worker movl 16(%esi),%ecx 234*8fb009dcSAndroid Build Coastguard Worker movl 16(%edi),%edx 235*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ecx 236*8fb009dcSAndroid Build Coastguard Worker movl $0,%eax 237*8fb009dcSAndroid Build Coastguard Worker adcl %eax,%eax 238*8fb009dcSAndroid Build Coastguard Worker addl %edx,%ecx 239*8fb009dcSAndroid Build Coastguard Worker adcl $0,%eax 240*8fb009dcSAndroid Build Coastguard Worker movl %ecx,16(%ebx) 241*8fb009dcSAndroid Build Coastguard Worker 242*8fb009dcSAndroid Build Coastguard Worker movl 20(%esi),%ecx 243*8fb009dcSAndroid Build Coastguard Worker movl 20(%edi),%edx 244*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ecx 245*8fb009dcSAndroid Build Coastguard Worker movl $0,%eax 246*8fb009dcSAndroid Build Coastguard Worker adcl %eax,%eax 247*8fb009dcSAndroid Build Coastguard Worker addl %edx,%ecx 248*8fb009dcSAndroid Build Coastguard Worker adcl $0,%eax 249*8fb009dcSAndroid Build Coastguard Worker movl %ecx,20(%ebx) 250*8fb009dcSAndroid Build Coastguard Worker 251*8fb009dcSAndroid Build Coastguard Worker movl 24(%esi),%ecx 252*8fb009dcSAndroid Build Coastguard Worker movl 24(%edi),%edx 253*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ecx 254*8fb009dcSAndroid Build Coastguard Worker movl $0,%eax 255*8fb009dcSAndroid Build Coastguard Worker adcl %eax,%eax 256*8fb009dcSAndroid Build Coastguard Worker addl %edx,%ecx 257*8fb009dcSAndroid Build Coastguard Worker adcl $0,%eax 258*8fb009dcSAndroid Build Coastguard Worker movl %ecx,24(%ebx) 259*8fb009dcSAndroid Build Coastguard Worker 260*8fb009dcSAndroid Build Coastguard Worker movl 28(%esi),%ecx 261*8fb009dcSAndroid Build Coastguard Worker movl 28(%edi),%edx 262*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ecx 263*8fb009dcSAndroid Build Coastguard Worker movl $0,%eax 264*8fb009dcSAndroid Build Coastguard Worker adcl %eax,%eax 265*8fb009dcSAndroid Build Coastguard Worker addl %edx,%ecx 266*8fb009dcSAndroid Build Coastguard Worker adcl $0,%eax 267*8fb009dcSAndroid Build Coastguard Worker movl %ecx,28(%ebx) 268*8fb009dcSAndroid Build Coastguard Worker 269*8fb009dcSAndroid Build Coastguard Worker addl $32,%esi 270*8fb009dcSAndroid Build Coastguard Worker addl $32,%edi 271*8fb009dcSAndroid Build Coastguard Worker addl $32,%ebx 272*8fb009dcSAndroid Build Coastguard Worker subl $8,%ebp 273*8fb009dcSAndroid Build Coastguard Worker jnz .L007aw_loop 274*8fb009dcSAndroid Build Coastguard Worker.L006aw_finish: 275*8fb009dcSAndroid Build Coastguard Worker movl 32(%esp),%ebp 276*8fb009dcSAndroid Build Coastguard Worker andl $7,%ebp 277*8fb009dcSAndroid Build Coastguard Worker jz .L008aw_end 278*8fb009dcSAndroid Build Coastguard Worker 279*8fb009dcSAndroid Build Coastguard Worker movl (%esi),%ecx 280*8fb009dcSAndroid Build Coastguard Worker movl (%edi),%edx 281*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ecx 282*8fb009dcSAndroid Build Coastguard Worker movl $0,%eax 283*8fb009dcSAndroid Build Coastguard Worker adcl %eax,%eax 284*8fb009dcSAndroid Build Coastguard Worker addl %edx,%ecx 285*8fb009dcSAndroid Build Coastguard Worker adcl $0,%eax 286*8fb009dcSAndroid Build Coastguard Worker decl %ebp 287*8fb009dcSAndroid Build Coastguard Worker movl %ecx,(%ebx) 288*8fb009dcSAndroid Build Coastguard Worker jz .L008aw_end 289*8fb009dcSAndroid Build Coastguard Worker 290*8fb009dcSAndroid Build Coastguard Worker movl 4(%esi),%ecx 291*8fb009dcSAndroid Build Coastguard Worker movl 4(%edi),%edx 292*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ecx 293*8fb009dcSAndroid Build Coastguard Worker movl $0,%eax 294*8fb009dcSAndroid Build Coastguard Worker adcl %eax,%eax 295*8fb009dcSAndroid Build Coastguard Worker addl %edx,%ecx 296*8fb009dcSAndroid Build Coastguard Worker adcl $0,%eax 297*8fb009dcSAndroid Build Coastguard Worker decl %ebp 298*8fb009dcSAndroid Build Coastguard Worker movl %ecx,4(%ebx) 299*8fb009dcSAndroid Build Coastguard Worker jz .L008aw_end 300*8fb009dcSAndroid Build Coastguard Worker 301*8fb009dcSAndroid Build Coastguard Worker movl 8(%esi),%ecx 302*8fb009dcSAndroid Build Coastguard Worker movl 8(%edi),%edx 303*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ecx 304*8fb009dcSAndroid Build Coastguard Worker movl $0,%eax 305*8fb009dcSAndroid Build Coastguard Worker adcl %eax,%eax 306*8fb009dcSAndroid Build Coastguard Worker addl %edx,%ecx 307*8fb009dcSAndroid Build Coastguard Worker adcl $0,%eax 308*8fb009dcSAndroid Build Coastguard Worker decl %ebp 309*8fb009dcSAndroid Build Coastguard Worker movl %ecx,8(%ebx) 310*8fb009dcSAndroid Build Coastguard Worker jz .L008aw_end 311*8fb009dcSAndroid Build Coastguard Worker 312*8fb009dcSAndroid Build Coastguard Worker movl 12(%esi),%ecx 313*8fb009dcSAndroid Build Coastguard Worker movl 12(%edi),%edx 314*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ecx 315*8fb009dcSAndroid Build Coastguard Worker movl $0,%eax 316*8fb009dcSAndroid Build Coastguard Worker adcl %eax,%eax 317*8fb009dcSAndroid Build Coastguard Worker addl %edx,%ecx 318*8fb009dcSAndroid Build Coastguard Worker adcl $0,%eax 319*8fb009dcSAndroid Build Coastguard Worker decl %ebp 320*8fb009dcSAndroid Build Coastguard Worker movl %ecx,12(%ebx) 321*8fb009dcSAndroid Build Coastguard Worker jz .L008aw_end 322*8fb009dcSAndroid Build Coastguard Worker 323*8fb009dcSAndroid Build Coastguard Worker movl 16(%esi),%ecx 324*8fb009dcSAndroid Build Coastguard Worker movl 16(%edi),%edx 325*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ecx 326*8fb009dcSAndroid Build Coastguard Worker movl $0,%eax 327*8fb009dcSAndroid Build Coastguard Worker adcl %eax,%eax 328*8fb009dcSAndroid Build Coastguard Worker addl %edx,%ecx 329*8fb009dcSAndroid Build Coastguard Worker adcl $0,%eax 330*8fb009dcSAndroid Build Coastguard Worker decl %ebp 331*8fb009dcSAndroid Build Coastguard Worker movl %ecx,16(%ebx) 332*8fb009dcSAndroid Build Coastguard Worker jz .L008aw_end 333*8fb009dcSAndroid Build Coastguard Worker 334*8fb009dcSAndroid Build Coastguard Worker movl 20(%esi),%ecx 335*8fb009dcSAndroid Build Coastguard Worker movl 20(%edi),%edx 336*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ecx 337*8fb009dcSAndroid Build Coastguard Worker movl $0,%eax 338*8fb009dcSAndroid Build Coastguard Worker adcl %eax,%eax 339*8fb009dcSAndroid Build Coastguard Worker addl %edx,%ecx 340*8fb009dcSAndroid Build Coastguard Worker adcl $0,%eax 341*8fb009dcSAndroid Build Coastguard Worker decl %ebp 342*8fb009dcSAndroid Build Coastguard Worker movl %ecx,20(%ebx) 343*8fb009dcSAndroid Build Coastguard Worker jz .L008aw_end 344*8fb009dcSAndroid Build Coastguard Worker 345*8fb009dcSAndroid Build Coastguard Worker movl 24(%esi),%ecx 346*8fb009dcSAndroid Build Coastguard Worker movl 24(%edi),%edx 347*8fb009dcSAndroid Build Coastguard Worker addl %eax,%ecx 348*8fb009dcSAndroid Build Coastguard Worker movl $0,%eax 349*8fb009dcSAndroid Build Coastguard Worker adcl %eax,%eax 350*8fb009dcSAndroid Build Coastguard Worker addl %edx,%ecx 351*8fb009dcSAndroid Build Coastguard Worker adcl $0,%eax 352*8fb009dcSAndroid Build Coastguard Worker movl %ecx,24(%ebx) 353*8fb009dcSAndroid Build Coastguard Worker.L008aw_end: 354*8fb009dcSAndroid Build Coastguard Worker popl %edi 355*8fb009dcSAndroid Build Coastguard Worker popl %esi 356*8fb009dcSAndroid Build Coastguard Worker popl %ebx 357*8fb009dcSAndroid Build Coastguard Worker popl %ebp 358*8fb009dcSAndroid Build Coastguard Worker ret 359*8fb009dcSAndroid Build Coastguard Worker.size bn_add_words,.-.L_bn_add_words_begin 360*8fb009dcSAndroid Build Coastguard Worker.globl bn_sub_words 361*8fb009dcSAndroid Build Coastguard Worker.hidden bn_sub_words 362*8fb009dcSAndroid Build Coastguard Worker.type bn_sub_words,@function 363*8fb009dcSAndroid Build Coastguard Worker.align 16 364*8fb009dcSAndroid Build Coastguard Workerbn_sub_words: 365*8fb009dcSAndroid Build Coastguard Worker.L_bn_sub_words_begin: 366*8fb009dcSAndroid Build Coastguard Worker pushl %ebp 367*8fb009dcSAndroid Build Coastguard Worker pushl %ebx 368*8fb009dcSAndroid Build Coastguard Worker pushl %esi 369*8fb009dcSAndroid Build Coastguard Worker pushl %edi 370*8fb009dcSAndroid Build Coastguard Worker 371*8fb009dcSAndroid Build Coastguard Worker movl 20(%esp),%ebx 372*8fb009dcSAndroid Build Coastguard Worker movl 24(%esp),%esi 373*8fb009dcSAndroid Build Coastguard Worker movl 28(%esp),%edi 374*8fb009dcSAndroid Build Coastguard Worker movl 32(%esp),%ebp 375*8fb009dcSAndroid Build Coastguard Worker xorl %eax,%eax 376*8fb009dcSAndroid Build Coastguard Worker andl $4294967288,%ebp 377*8fb009dcSAndroid Build Coastguard Worker jz .L009aw_finish 378*8fb009dcSAndroid Build Coastguard Worker.L010aw_loop: 379*8fb009dcSAndroid Build Coastguard Worker 380*8fb009dcSAndroid Build Coastguard Worker movl (%esi),%ecx 381*8fb009dcSAndroid Build Coastguard Worker movl (%edi),%edx 382*8fb009dcSAndroid Build Coastguard Worker subl %eax,%ecx 383*8fb009dcSAndroid Build Coastguard Worker movl $0,%eax 384*8fb009dcSAndroid Build Coastguard Worker adcl %eax,%eax 385*8fb009dcSAndroid Build Coastguard Worker subl %edx,%ecx 386*8fb009dcSAndroid Build Coastguard Worker adcl $0,%eax 387*8fb009dcSAndroid Build Coastguard Worker movl %ecx,(%ebx) 388*8fb009dcSAndroid Build Coastguard Worker 389*8fb009dcSAndroid Build Coastguard Worker movl 4(%esi),%ecx 390*8fb009dcSAndroid Build Coastguard Worker movl 4(%edi),%edx 391*8fb009dcSAndroid Build Coastguard Worker subl %eax,%ecx 392*8fb009dcSAndroid Build Coastguard Worker movl $0,%eax 393*8fb009dcSAndroid Build Coastguard Worker adcl %eax,%eax 394*8fb009dcSAndroid Build Coastguard Worker subl %edx,%ecx 395*8fb009dcSAndroid Build Coastguard Worker adcl $0,%eax 396*8fb009dcSAndroid Build Coastguard Worker movl %ecx,4(%ebx) 397*8fb009dcSAndroid Build Coastguard Worker 398*8fb009dcSAndroid Build Coastguard Worker movl 8(%esi),%ecx 399*8fb009dcSAndroid Build Coastguard Worker movl 8(%edi),%edx 400*8fb009dcSAndroid Build Coastguard Worker subl %eax,%ecx 401*8fb009dcSAndroid Build Coastguard Worker movl $0,%eax 402*8fb009dcSAndroid Build Coastguard Worker adcl %eax,%eax 403*8fb009dcSAndroid Build Coastguard Worker subl %edx,%ecx 404*8fb009dcSAndroid Build Coastguard Worker adcl $0,%eax 405*8fb009dcSAndroid Build Coastguard Worker movl %ecx,8(%ebx) 406*8fb009dcSAndroid Build Coastguard Worker 407*8fb009dcSAndroid Build Coastguard Worker movl 12(%esi),%ecx 408*8fb009dcSAndroid Build Coastguard Worker movl 12(%edi),%edx 409*8fb009dcSAndroid Build Coastguard Worker subl %eax,%ecx 410*8fb009dcSAndroid Build Coastguard Worker movl $0,%eax 411*8fb009dcSAndroid Build Coastguard Worker adcl %eax,%eax 412*8fb009dcSAndroid Build Coastguard Worker subl %edx,%ecx 413*8fb009dcSAndroid Build Coastguard Worker adcl $0,%eax 414*8fb009dcSAndroid Build Coastguard Worker movl %ecx,12(%ebx) 415*8fb009dcSAndroid Build Coastguard Worker 416*8fb009dcSAndroid Build Coastguard Worker movl 16(%esi),%ecx 417*8fb009dcSAndroid Build Coastguard Worker movl 16(%edi),%edx 418*8fb009dcSAndroid Build Coastguard Worker subl %eax,%ecx 419*8fb009dcSAndroid Build Coastguard Worker movl $0,%eax 420*8fb009dcSAndroid Build Coastguard Worker adcl %eax,%eax 421*8fb009dcSAndroid Build Coastguard Worker subl %edx,%ecx 422*8fb009dcSAndroid Build Coastguard Worker adcl $0,%eax 423*8fb009dcSAndroid Build Coastguard Worker movl %ecx,16(%ebx) 424*8fb009dcSAndroid Build Coastguard Worker 425*8fb009dcSAndroid Build Coastguard Worker movl 20(%esi),%ecx 426*8fb009dcSAndroid Build Coastguard Worker movl 20(%edi),%edx 427*8fb009dcSAndroid Build Coastguard Worker subl %eax,%ecx 428*8fb009dcSAndroid Build Coastguard Worker movl $0,%eax 429*8fb009dcSAndroid Build Coastguard Worker adcl %eax,%eax 430*8fb009dcSAndroid Build Coastguard Worker subl %edx,%ecx 431*8fb009dcSAndroid Build Coastguard Worker adcl $0,%eax 432*8fb009dcSAndroid Build Coastguard Worker movl %ecx,20(%ebx) 433*8fb009dcSAndroid Build Coastguard Worker 434*8fb009dcSAndroid Build Coastguard Worker movl 24(%esi),%ecx 435*8fb009dcSAndroid Build Coastguard Worker movl 24(%edi),%edx 436*8fb009dcSAndroid Build Coastguard Worker subl %eax,%ecx 437*8fb009dcSAndroid Build Coastguard Worker movl $0,%eax 438*8fb009dcSAndroid Build Coastguard Worker adcl %eax,%eax 439*8fb009dcSAndroid Build Coastguard Worker subl %edx,%ecx 440*8fb009dcSAndroid Build Coastguard Worker adcl $0,%eax 441*8fb009dcSAndroid Build Coastguard Worker movl %ecx,24(%ebx) 442*8fb009dcSAndroid Build Coastguard Worker 443*8fb009dcSAndroid Build Coastguard Worker movl 28(%esi),%ecx 444*8fb009dcSAndroid Build Coastguard Worker movl 28(%edi),%edx 445*8fb009dcSAndroid Build Coastguard Worker subl %eax,%ecx 446*8fb009dcSAndroid Build Coastguard Worker movl $0,%eax 447*8fb009dcSAndroid Build Coastguard Worker adcl %eax,%eax 448*8fb009dcSAndroid Build Coastguard Worker subl %edx,%ecx 449*8fb009dcSAndroid Build Coastguard Worker adcl $0,%eax 450*8fb009dcSAndroid Build Coastguard Worker movl %ecx,28(%ebx) 451*8fb009dcSAndroid Build Coastguard Worker 452*8fb009dcSAndroid Build Coastguard Worker addl $32,%esi 453*8fb009dcSAndroid Build Coastguard Worker addl $32,%edi 454*8fb009dcSAndroid Build Coastguard Worker addl $32,%ebx 455*8fb009dcSAndroid Build Coastguard Worker subl $8,%ebp 456*8fb009dcSAndroid Build Coastguard Worker jnz .L010aw_loop 457*8fb009dcSAndroid Build Coastguard Worker.L009aw_finish: 458*8fb009dcSAndroid Build Coastguard Worker movl 32(%esp),%ebp 459*8fb009dcSAndroid Build Coastguard Worker andl $7,%ebp 460*8fb009dcSAndroid Build Coastguard Worker jz .L011aw_end 461*8fb009dcSAndroid Build Coastguard Worker 462*8fb009dcSAndroid Build Coastguard Worker movl (%esi),%ecx 463*8fb009dcSAndroid Build Coastguard Worker movl (%edi),%edx 464*8fb009dcSAndroid Build Coastguard Worker subl %eax,%ecx 465*8fb009dcSAndroid Build Coastguard Worker movl $0,%eax 466*8fb009dcSAndroid Build Coastguard Worker adcl %eax,%eax 467*8fb009dcSAndroid Build Coastguard Worker subl %edx,%ecx 468*8fb009dcSAndroid Build Coastguard Worker adcl $0,%eax 469*8fb009dcSAndroid Build Coastguard Worker decl %ebp 470*8fb009dcSAndroid Build Coastguard Worker movl %ecx,(%ebx) 471*8fb009dcSAndroid Build Coastguard Worker jz .L011aw_end 472*8fb009dcSAndroid Build Coastguard Worker 473*8fb009dcSAndroid Build Coastguard Worker movl 4(%esi),%ecx 474*8fb009dcSAndroid Build Coastguard Worker movl 4(%edi),%edx 475*8fb009dcSAndroid Build Coastguard Worker subl %eax,%ecx 476*8fb009dcSAndroid Build Coastguard Worker movl $0,%eax 477*8fb009dcSAndroid Build Coastguard Worker adcl %eax,%eax 478*8fb009dcSAndroid Build Coastguard Worker subl %edx,%ecx 479*8fb009dcSAndroid Build Coastguard Worker adcl $0,%eax 480*8fb009dcSAndroid Build Coastguard Worker decl %ebp 481*8fb009dcSAndroid Build Coastguard Worker movl %ecx,4(%ebx) 482*8fb009dcSAndroid Build Coastguard Worker jz .L011aw_end 483*8fb009dcSAndroid Build Coastguard Worker 484*8fb009dcSAndroid Build Coastguard Worker movl 8(%esi),%ecx 485*8fb009dcSAndroid Build Coastguard Worker movl 8(%edi),%edx 486*8fb009dcSAndroid Build Coastguard Worker subl %eax,%ecx 487*8fb009dcSAndroid Build Coastguard Worker movl $0,%eax 488*8fb009dcSAndroid Build Coastguard Worker adcl %eax,%eax 489*8fb009dcSAndroid Build Coastguard Worker subl %edx,%ecx 490*8fb009dcSAndroid Build Coastguard Worker adcl $0,%eax 491*8fb009dcSAndroid Build Coastguard Worker decl %ebp 492*8fb009dcSAndroid Build Coastguard Worker movl %ecx,8(%ebx) 493*8fb009dcSAndroid Build Coastguard Worker jz .L011aw_end 494*8fb009dcSAndroid Build Coastguard Worker 495*8fb009dcSAndroid Build Coastguard Worker movl 12(%esi),%ecx 496*8fb009dcSAndroid Build Coastguard Worker movl 12(%edi),%edx 497*8fb009dcSAndroid Build Coastguard Worker subl %eax,%ecx 498*8fb009dcSAndroid Build Coastguard Worker movl $0,%eax 499*8fb009dcSAndroid Build Coastguard Worker adcl %eax,%eax 500*8fb009dcSAndroid Build Coastguard Worker subl %edx,%ecx 501*8fb009dcSAndroid Build Coastguard Worker adcl $0,%eax 502*8fb009dcSAndroid Build Coastguard Worker decl %ebp 503*8fb009dcSAndroid Build Coastguard Worker movl %ecx,12(%ebx) 504*8fb009dcSAndroid Build Coastguard Worker jz .L011aw_end 505*8fb009dcSAndroid Build Coastguard Worker 506*8fb009dcSAndroid Build Coastguard Worker movl 16(%esi),%ecx 507*8fb009dcSAndroid Build Coastguard Worker movl 16(%edi),%edx 508*8fb009dcSAndroid Build Coastguard Worker subl %eax,%ecx 509*8fb009dcSAndroid Build Coastguard Worker movl $0,%eax 510*8fb009dcSAndroid Build Coastguard Worker adcl %eax,%eax 511*8fb009dcSAndroid Build Coastguard Worker subl %edx,%ecx 512*8fb009dcSAndroid Build Coastguard Worker adcl $0,%eax 513*8fb009dcSAndroid Build Coastguard Worker decl %ebp 514*8fb009dcSAndroid Build Coastguard Worker movl %ecx,16(%ebx) 515*8fb009dcSAndroid Build Coastguard Worker jz .L011aw_end 516*8fb009dcSAndroid Build Coastguard Worker 517*8fb009dcSAndroid Build Coastguard Worker movl 20(%esi),%ecx 518*8fb009dcSAndroid Build Coastguard Worker movl 20(%edi),%edx 519*8fb009dcSAndroid Build Coastguard Worker subl %eax,%ecx 520*8fb009dcSAndroid Build Coastguard Worker movl $0,%eax 521*8fb009dcSAndroid Build Coastguard Worker adcl %eax,%eax 522*8fb009dcSAndroid Build Coastguard Worker subl %edx,%ecx 523*8fb009dcSAndroid Build Coastguard Worker adcl $0,%eax 524*8fb009dcSAndroid Build Coastguard Worker decl %ebp 525*8fb009dcSAndroid Build Coastguard Worker movl %ecx,20(%ebx) 526*8fb009dcSAndroid Build Coastguard Worker jz .L011aw_end 527*8fb009dcSAndroid Build Coastguard Worker 528*8fb009dcSAndroid Build Coastguard Worker movl 24(%esi),%ecx 529*8fb009dcSAndroid Build Coastguard Worker movl 24(%edi),%edx 530*8fb009dcSAndroid Build Coastguard Worker subl %eax,%ecx 531*8fb009dcSAndroid Build Coastguard Worker movl $0,%eax 532*8fb009dcSAndroid Build Coastguard Worker adcl %eax,%eax 533*8fb009dcSAndroid Build Coastguard Worker subl %edx,%ecx 534*8fb009dcSAndroid Build Coastguard Worker adcl $0,%eax 535*8fb009dcSAndroid Build Coastguard Worker movl %ecx,24(%ebx) 536*8fb009dcSAndroid Build Coastguard Worker.L011aw_end: 537*8fb009dcSAndroid Build Coastguard Worker popl %edi 538*8fb009dcSAndroid Build Coastguard Worker popl %esi 539*8fb009dcSAndroid Build Coastguard Worker popl %ebx 540*8fb009dcSAndroid Build Coastguard Worker popl %ebp 541*8fb009dcSAndroid Build Coastguard Worker ret 542*8fb009dcSAndroid Build Coastguard Worker.size bn_sub_words,.-.L_bn_sub_words_begin 543*8fb009dcSAndroid Build Coastguard Worker#endif // !defined(OPENSSL_NO_ASM) && defined(OPENSSL_X86) && defined(__ELF__) 544