1ebfedea0SLionel Sambuc#include <machine/asm.h> 2ebfedea0SLionel Sambuc.text 3ebfedea0SLionel Sambuc.globl bn_mul_add_words 4ebfedea0SLionel Sambuc.type bn_mul_add_words,@function 5ebfedea0SLionel Sambuc.align 16 6ebfedea0SLionel Sambucbn_mul_add_words: 7ebfedea0SLionel Sambuc.L_bn_mul_add_words_begin: 8*0a6a1f1dSLionel Sambuc call .L000PIC_me_up 9*0a6a1f1dSLionel Sambuc.L000PIC_me_up: 10*0a6a1f1dSLionel Sambuc popl %eax 11*0a6a1f1dSLionel Sambuc leal _GLOBAL_OFFSET_TABLE_+[.-.L000PIC_me_up](%eax),%eax 12*0a6a1f1dSLionel Sambuc movl OPENSSL_ia32cap_P@GOT(%eax),%eax 13*0a6a1f1dSLionel Sambuc btl $26,(%eax) 14*0a6a1f1dSLionel Sambuc jnc .L001maw_non_sse2 15*0a6a1f1dSLionel Sambuc movl 4(%esp),%eax 16*0a6a1f1dSLionel Sambuc movl 8(%esp),%edx 17*0a6a1f1dSLionel Sambuc movl 12(%esp),%ecx 18*0a6a1f1dSLionel Sambuc movd 16(%esp),%mm0 19*0a6a1f1dSLionel Sambuc pxor %mm1,%mm1 20*0a6a1f1dSLionel Sambuc jmp .L002maw_sse2_entry 21*0a6a1f1dSLionel Sambuc.align 16 22*0a6a1f1dSLionel Sambuc.L003maw_sse2_unrolled: 23*0a6a1f1dSLionel Sambuc movd (%eax),%mm3 24*0a6a1f1dSLionel Sambuc paddq %mm3,%mm1 25*0a6a1f1dSLionel Sambuc movd (%edx),%mm2 26*0a6a1f1dSLionel Sambuc pmuludq %mm0,%mm2 27*0a6a1f1dSLionel Sambuc movd 4(%edx),%mm4 28*0a6a1f1dSLionel Sambuc pmuludq %mm0,%mm4 29*0a6a1f1dSLionel Sambuc movd 8(%edx),%mm6 30*0a6a1f1dSLionel Sambuc pmuludq %mm0,%mm6 31*0a6a1f1dSLionel Sambuc movd 12(%edx),%mm7 32*0a6a1f1dSLionel Sambuc pmuludq %mm0,%mm7 33*0a6a1f1dSLionel Sambuc paddq %mm2,%mm1 34*0a6a1f1dSLionel Sambuc movd 4(%eax),%mm3 35*0a6a1f1dSLionel Sambuc paddq %mm4,%mm3 36*0a6a1f1dSLionel Sambuc movd 8(%eax),%mm5 37*0a6a1f1dSLionel Sambuc paddq %mm6,%mm5 38*0a6a1f1dSLionel Sambuc movd 12(%eax),%mm4 39*0a6a1f1dSLionel Sambuc paddq %mm4,%mm7 40*0a6a1f1dSLionel Sambuc movd %mm1,(%eax) 41*0a6a1f1dSLionel Sambuc movd 16(%edx),%mm2 42*0a6a1f1dSLionel Sambuc pmuludq %mm0,%mm2 43*0a6a1f1dSLionel Sambuc psrlq $32,%mm1 44*0a6a1f1dSLionel Sambuc movd 20(%edx),%mm4 45*0a6a1f1dSLionel Sambuc pmuludq %mm0,%mm4 46*0a6a1f1dSLionel Sambuc paddq %mm3,%mm1 47*0a6a1f1dSLionel Sambuc movd 24(%edx),%mm6 48*0a6a1f1dSLionel Sambuc pmuludq %mm0,%mm6 49*0a6a1f1dSLionel Sambuc movd %mm1,4(%eax) 50*0a6a1f1dSLionel Sambuc psrlq $32,%mm1 51*0a6a1f1dSLionel Sambuc movd 28(%edx),%mm3 52*0a6a1f1dSLionel Sambuc addl $32,%edx 53*0a6a1f1dSLionel Sambuc pmuludq %mm0,%mm3 54*0a6a1f1dSLionel Sambuc paddq %mm5,%mm1 55*0a6a1f1dSLionel Sambuc movd 16(%eax),%mm5 56*0a6a1f1dSLionel Sambuc paddq %mm5,%mm2 57*0a6a1f1dSLionel Sambuc movd %mm1,8(%eax) 58*0a6a1f1dSLionel Sambuc psrlq $32,%mm1 59*0a6a1f1dSLionel Sambuc paddq %mm7,%mm1 60*0a6a1f1dSLionel Sambuc movd 20(%eax),%mm5 61*0a6a1f1dSLionel Sambuc paddq %mm5,%mm4 62*0a6a1f1dSLionel Sambuc movd %mm1,12(%eax) 63*0a6a1f1dSLionel Sambuc psrlq $32,%mm1 64*0a6a1f1dSLionel Sambuc paddq %mm2,%mm1 65*0a6a1f1dSLionel Sambuc movd 24(%eax),%mm5 66*0a6a1f1dSLionel Sambuc paddq %mm5,%mm6 67*0a6a1f1dSLionel Sambuc movd %mm1,16(%eax) 68*0a6a1f1dSLionel Sambuc psrlq $32,%mm1 69*0a6a1f1dSLionel Sambuc paddq %mm4,%mm1 70*0a6a1f1dSLionel Sambuc movd 28(%eax),%mm5 71*0a6a1f1dSLionel Sambuc paddq %mm5,%mm3 72*0a6a1f1dSLionel Sambuc movd %mm1,20(%eax) 73*0a6a1f1dSLionel Sambuc psrlq $32,%mm1 74*0a6a1f1dSLionel Sambuc paddq %mm6,%mm1 75*0a6a1f1dSLionel Sambuc movd %mm1,24(%eax) 76*0a6a1f1dSLionel Sambuc psrlq $32,%mm1 77*0a6a1f1dSLionel Sambuc paddq %mm3,%mm1 78*0a6a1f1dSLionel Sambuc movd %mm1,28(%eax) 79*0a6a1f1dSLionel Sambuc leal 32(%eax),%eax 80*0a6a1f1dSLionel Sambuc psrlq $32,%mm1 81*0a6a1f1dSLionel Sambuc subl $8,%ecx 82*0a6a1f1dSLionel Sambuc jz .L004maw_sse2_exit 83*0a6a1f1dSLionel Sambuc.L002maw_sse2_entry: 84*0a6a1f1dSLionel Sambuc testl $4294967288,%ecx 85*0a6a1f1dSLionel Sambuc jnz .L003maw_sse2_unrolled 86*0a6a1f1dSLionel Sambuc.align 4 87*0a6a1f1dSLionel Sambuc.L005maw_sse2_loop: 88*0a6a1f1dSLionel Sambuc movd (%edx),%mm2 89*0a6a1f1dSLionel Sambuc movd (%eax),%mm3 90*0a6a1f1dSLionel Sambuc pmuludq %mm0,%mm2 91*0a6a1f1dSLionel Sambuc leal 4(%edx),%edx 92*0a6a1f1dSLionel Sambuc paddq %mm3,%mm1 93*0a6a1f1dSLionel Sambuc paddq %mm2,%mm1 94*0a6a1f1dSLionel Sambuc movd %mm1,(%eax) 95*0a6a1f1dSLionel Sambuc subl $1,%ecx 96*0a6a1f1dSLionel Sambuc psrlq $32,%mm1 97*0a6a1f1dSLionel Sambuc leal 4(%eax),%eax 98*0a6a1f1dSLionel Sambuc jnz .L005maw_sse2_loop 99*0a6a1f1dSLionel Sambuc.L004maw_sse2_exit: 100*0a6a1f1dSLionel Sambuc movd %mm1,%eax 101*0a6a1f1dSLionel Sambuc emms 102*0a6a1f1dSLionel Sambuc ret 103*0a6a1f1dSLionel Sambuc.align 16 104*0a6a1f1dSLionel Sambuc.L001maw_non_sse2: 105ebfedea0SLionel Sambuc pushl %ebp 106ebfedea0SLionel Sambuc pushl %ebx 107ebfedea0SLionel Sambuc pushl %esi 108ebfedea0SLionel Sambuc pushl %edi 109ebfedea0SLionel Sambuc 110ebfedea0SLionel Sambuc xorl %esi,%esi 111ebfedea0SLionel Sambuc movl 20(%esp),%edi 112ebfedea0SLionel Sambuc movl 28(%esp),%ecx 113ebfedea0SLionel Sambuc movl 24(%esp),%ebx 114ebfedea0SLionel Sambuc andl $4294967288,%ecx 115ebfedea0SLionel Sambuc movl 32(%esp),%ebp 116ebfedea0SLionel Sambuc pushl %ecx 117*0a6a1f1dSLionel Sambuc jz .L006maw_finish 118ebfedea0SLionel Sambuc.align 16 119*0a6a1f1dSLionel Sambuc.L007maw_loop: 120ebfedea0SLionel Sambuc 121ebfedea0SLionel Sambuc movl (%ebx),%eax 122ebfedea0SLionel Sambuc mull %ebp 123ebfedea0SLionel Sambuc addl %esi,%eax 124ebfedea0SLionel Sambuc adcl $0,%edx 125ebfedea0SLionel Sambuc addl (%edi),%eax 126ebfedea0SLionel Sambuc adcl $0,%edx 127ebfedea0SLionel Sambuc movl %eax,(%edi) 128ebfedea0SLionel Sambuc movl %edx,%esi 129ebfedea0SLionel Sambuc 130ebfedea0SLionel Sambuc movl 4(%ebx),%eax 131ebfedea0SLionel Sambuc mull %ebp 132ebfedea0SLionel Sambuc addl %esi,%eax 133ebfedea0SLionel Sambuc adcl $0,%edx 134ebfedea0SLionel Sambuc addl 4(%edi),%eax 135ebfedea0SLionel Sambuc adcl $0,%edx 136ebfedea0SLionel Sambuc movl %eax,4(%edi) 137ebfedea0SLionel Sambuc movl %edx,%esi 138ebfedea0SLionel Sambuc 139ebfedea0SLionel Sambuc movl 8(%ebx),%eax 140ebfedea0SLionel Sambuc mull %ebp 141ebfedea0SLionel Sambuc addl %esi,%eax 142ebfedea0SLionel Sambuc adcl $0,%edx 143ebfedea0SLionel Sambuc addl 8(%edi),%eax 144ebfedea0SLionel Sambuc adcl $0,%edx 145ebfedea0SLionel Sambuc movl %eax,8(%edi) 146ebfedea0SLionel Sambuc movl %edx,%esi 147ebfedea0SLionel Sambuc 148ebfedea0SLionel Sambuc movl 12(%ebx),%eax 149ebfedea0SLionel Sambuc mull %ebp 150ebfedea0SLionel Sambuc addl %esi,%eax 151ebfedea0SLionel Sambuc adcl $0,%edx 152ebfedea0SLionel Sambuc addl 12(%edi),%eax 153ebfedea0SLionel Sambuc adcl $0,%edx 154ebfedea0SLionel Sambuc movl %eax,12(%edi) 155ebfedea0SLionel Sambuc movl %edx,%esi 156ebfedea0SLionel Sambuc 157ebfedea0SLionel Sambuc movl 16(%ebx),%eax 158ebfedea0SLionel Sambuc mull %ebp 159ebfedea0SLionel Sambuc addl %esi,%eax 160ebfedea0SLionel Sambuc adcl $0,%edx 161ebfedea0SLionel Sambuc addl 16(%edi),%eax 162ebfedea0SLionel Sambuc adcl $0,%edx 163ebfedea0SLionel Sambuc movl %eax,16(%edi) 164ebfedea0SLionel Sambuc movl %edx,%esi 165ebfedea0SLionel Sambuc 166ebfedea0SLionel Sambuc movl 20(%ebx),%eax 167ebfedea0SLionel Sambuc mull %ebp 168ebfedea0SLionel Sambuc addl %esi,%eax 169ebfedea0SLionel Sambuc adcl $0,%edx 170ebfedea0SLionel Sambuc addl 20(%edi),%eax 171ebfedea0SLionel Sambuc adcl $0,%edx 172ebfedea0SLionel Sambuc movl %eax,20(%edi) 173ebfedea0SLionel Sambuc movl %edx,%esi 174ebfedea0SLionel Sambuc 175ebfedea0SLionel Sambuc movl 24(%ebx),%eax 176ebfedea0SLionel Sambuc mull %ebp 177ebfedea0SLionel Sambuc addl %esi,%eax 178ebfedea0SLionel Sambuc adcl $0,%edx 179ebfedea0SLionel Sambuc addl 24(%edi),%eax 180ebfedea0SLionel Sambuc adcl $0,%edx 181ebfedea0SLionel Sambuc movl %eax,24(%edi) 182ebfedea0SLionel Sambuc movl %edx,%esi 183ebfedea0SLionel Sambuc 184ebfedea0SLionel Sambuc movl 28(%ebx),%eax 185ebfedea0SLionel Sambuc mull %ebp 186ebfedea0SLionel Sambuc addl %esi,%eax 187ebfedea0SLionel Sambuc adcl $0,%edx 188ebfedea0SLionel Sambuc addl 28(%edi),%eax 189ebfedea0SLionel Sambuc adcl $0,%edx 190ebfedea0SLionel Sambuc movl %eax,28(%edi) 191ebfedea0SLionel Sambuc movl %edx,%esi 192ebfedea0SLionel Sambuc 193ebfedea0SLionel Sambuc subl $8,%ecx 194ebfedea0SLionel Sambuc leal 32(%ebx),%ebx 195ebfedea0SLionel Sambuc leal 32(%edi),%edi 196*0a6a1f1dSLionel Sambuc jnz .L007maw_loop 197*0a6a1f1dSLionel Sambuc.L006maw_finish: 198ebfedea0SLionel Sambuc movl 32(%esp),%ecx 199ebfedea0SLionel Sambuc andl $7,%ecx 200*0a6a1f1dSLionel Sambuc jnz .L008maw_finish2 201*0a6a1f1dSLionel Sambuc jmp .L009maw_end 202*0a6a1f1dSLionel Sambuc.L008maw_finish2: 203ebfedea0SLionel Sambuc 204ebfedea0SLionel Sambuc movl (%ebx),%eax 205ebfedea0SLionel Sambuc mull %ebp 206ebfedea0SLionel Sambuc addl %esi,%eax 207ebfedea0SLionel Sambuc adcl $0,%edx 208ebfedea0SLionel Sambuc addl (%edi),%eax 209ebfedea0SLionel Sambuc adcl $0,%edx 210ebfedea0SLionel Sambuc decl %ecx 211ebfedea0SLionel Sambuc movl %eax,(%edi) 212ebfedea0SLionel Sambuc movl %edx,%esi 213*0a6a1f1dSLionel Sambuc jz .L009maw_end 214ebfedea0SLionel Sambuc 215ebfedea0SLionel Sambuc movl 4(%ebx),%eax 216ebfedea0SLionel Sambuc mull %ebp 217ebfedea0SLionel Sambuc addl %esi,%eax 218ebfedea0SLionel Sambuc adcl $0,%edx 219ebfedea0SLionel Sambuc addl 4(%edi),%eax 220ebfedea0SLionel Sambuc adcl $0,%edx 221ebfedea0SLionel Sambuc decl %ecx 222ebfedea0SLionel Sambuc movl %eax,4(%edi) 223ebfedea0SLionel Sambuc movl %edx,%esi 224*0a6a1f1dSLionel Sambuc jz .L009maw_end 225ebfedea0SLionel Sambuc 226ebfedea0SLionel Sambuc movl 8(%ebx),%eax 227ebfedea0SLionel Sambuc mull %ebp 228ebfedea0SLionel Sambuc addl %esi,%eax 229ebfedea0SLionel Sambuc adcl $0,%edx 230ebfedea0SLionel Sambuc addl 8(%edi),%eax 231ebfedea0SLionel Sambuc adcl $0,%edx 232ebfedea0SLionel Sambuc decl %ecx 233ebfedea0SLionel Sambuc movl %eax,8(%edi) 234ebfedea0SLionel Sambuc movl %edx,%esi 235*0a6a1f1dSLionel Sambuc jz .L009maw_end 236ebfedea0SLionel Sambuc 237ebfedea0SLionel Sambuc movl 12(%ebx),%eax 238ebfedea0SLionel Sambuc mull %ebp 239ebfedea0SLionel Sambuc addl %esi,%eax 240ebfedea0SLionel Sambuc adcl $0,%edx 241ebfedea0SLionel Sambuc addl 12(%edi),%eax 242ebfedea0SLionel Sambuc adcl $0,%edx 243ebfedea0SLionel Sambuc decl %ecx 244ebfedea0SLionel Sambuc movl %eax,12(%edi) 245ebfedea0SLionel Sambuc movl %edx,%esi 246*0a6a1f1dSLionel Sambuc jz .L009maw_end 247ebfedea0SLionel Sambuc 248ebfedea0SLionel Sambuc movl 16(%ebx),%eax 249ebfedea0SLionel Sambuc mull %ebp 250ebfedea0SLionel Sambuc addl %esi,%eax 251ebfedea0SLionel Sambuc adcl $0,%edx 252ebfedea0SLionel Sambuc addl 16(%edi),%eax 253ebfedea0SLionel Sambuc adcl $0,%edx 254ebfedea0SLionel Sambuc decl %ecx 255ebfedea0SLionel Sambuc movl %eax,16(%edi) 256ebfedea0SLionel Sambuc movl %edx,%esi 257*0a6a1f1dSLionel Sambuc jz .L009maw_end 258ebfedea0SLionel Sambuc 259ebfedea0SLionel Sambuc movl 20(%ebx),%eax 260ebfedea0SLionel Sambuc mull %ebp 261ebfedea0SLionel Sambuc addl %esi,%eax 262ebfedea0SLionel Sambuc adcl $0,%edx 263ebfedea0SLionel Sambuc addl 20(%edi),%eax 264ebfedea0SLionel Sambuc adcl $0,%edx 265ebfedea0SLionel Sambuc decl %ecx 266ebfedea0SLionel Sambuc movl %eax,20(%edi) 267ebfedea0SLionel Sambuc movl %edx,%esi 268*0a6a1f1dSLionel Sambuc jz .L009maw_end 269ebfedea0SLionel Sambuc 270ebfedea0SLionel Sambuc movl 24(%ebx),%eax 271ebfedea0SLionel Sambuc mull %ebp 272ebfedea0SLionel Sambuc addl %esi,%eax 273ebfedea0SLionel Sambuc adcl $0,%edx 274ebfedea0SLionel Sambuc addl 24(%edi),%eax 275ebfedea0SLionel Sambuc adcl $0,%edx 276ebfedea0SLionel Sambuc movl %eax,24(%edi) 277ebfedea0SLionel Sambuc movl %edx,%esi 278*0a6a1f1dSLionel Sambuc.L009maw_end: 279ebfedea0SLionel Sambuc movl %esi,%eax 280ebfedea0SLionel Sambuc popl %ecx 281ebfedea0SLionel Sambuc popl %edi 282ebfedea0SLionel Sambuc popl %esi 283ebfedea0SLionel Sambuc popl %ebx 284ebfedea0SLionel Sambuc popl %ebp 285ebfedea0SLionel Sambuc ret 286ebfedea0SLionel Sambuc.size bn_mul_add_words,.-.L_bn_mul_add_words_begin 287ebfedea0SLionel Sambuc.globl bn_mul_words 288ebfedea0SLionel Sambuc.type bn_mul_words,@function 289ebfedea0SLionel Sambuc.align 16 290ebfedea0SLionel Sambucbn_mul_words: 291ebfedea0SLionel Sambuc.L_bn_mul_words_begin: 292*0a6a1f1dSLionel Sambuc call .L010PIC_me_up 293*0a6a1f1dSLionel Sambuc.L010PIC_me_up: 294*0a6a1f1dSLionel Sambuc popl %eax 295*0a6a1f1dSLionel Sambuc leal _GLOBAL_OFFSET_TABLE_+[.-.L010PIC_me_up](%eax),%eax 296*0a6a1f1dSLionel Sambuc movl OPENSSL_ia32cap_P@GOT(%eax),%eax 297*0a6a1f1dSLionel Sambuc btl $26,(%eax) 298*0a6a1f1dSLionel Sambuc jnc .L011mw_non_sse2 299*0a6a1f1dSLionel Sambuc movl 4(%esp),%eax 300*0a6a1f1dSLionel Sambuc movl 8(%esp),%edx 301*0a6a1f1dSLionel Sambuc movl 12(%esp),%ecx 302*0a6a1f1dSLionel Sambuc movd 16(%esp),%mm0 303*0a6a1f1dSLionel Sambuc pxor %mm1,%mm1 304*0a6a1f1dSLionel Sambuc.align 16 305*0a6a1f1dSLionel Sambuc.L012mw_sse2_loop: 306*0a6a1f1dSLionel Sambuc movd (%edx),%mm2 307*0a6a1f1dSLionel Sambuc pmuludq %mm0,%mm2 308*0a6a1f1dSLionel Sambuc leal 4(%edx),%edx 309*0a6a1f1dSLionel Sambuc paddq %mm2,%mm1 310*0a6a1f1dSLionel Sambuc movd %mm1,(%eax) 311*0a6a1f1dSLionel Sambuc subl $1,%ecx 312*0a6a1f1dSLionel Sambuc psrlq $32,%mm1 313*0a6a1f1dSLionel Sambuc leal 4(%eax),%eax 314*0a6a1f1dSLionel Sambuc jnz .L012mw_sse2_loop 315*0a6a1f1dSLionel Sambuc movd %mm1,%eax 316*0a6a1f1dSLionel Sambuc emms 317*0a6a1f1dSLionel Sambuc ret 318*0a6a1f1dSLionel Sambuc.align 16 319*0a6a1f1dSLionel Sambuc.L011mw_non_sse2: 320ebfedea0SLionel Sambuc pushl %ebp 321ebfedea0SLionel Sambuc pushl %ebx 322ebfedea0SLionel Sambuc pushl %esi 323ebfedea0SLionel Sambuc pushl %edi 324ebfedea0SLionel Sambuc 325ebfedea0SLionel Sambuc xorl %esi,%esi 326ebfedea0SLionel Sambuc movl 20(%esp),%edi 327ebfedea0SLionel Sambuc movl 24(%esp),%ebx 328ebfedea0SLionel Sambuc movl 28(%esp),%ebp 329ebfedea0SLionel Sambuc movl 32(%esp),%ecx 330ebfedea0SLionel Sambuc andl $4294967288,%ebp 331*0a6a1f1dSLionel Sambuc jz .L013mw_finish 332*0a6a1f1dSLionel Sambuc.L014mw_loop: 333ebfedea0SLionel Sambuc 334ebfedea0SLionel Sambuc movl (%ebx),%eax 335ebfedea0SLionel Sambuc mull %ecx 336ebfedea0SLionel Sambuc addl %esi,%eax 337ebfedea0SLionel Sambuc adcl $0,%edx 338ebfedea0SLionel Sambuc movl %eax,(%edi) 339ebfedea0SLionel Sambuc movl %edx,%esi 340ebfedea0SLionel Sambuc 341ebfedea0SLionel Sambuc movl 4(%ebx),%eax 342ebfedea0SLionel Sambuc mull %ecx 343ebfedea0SLionel Sambuc addl %esi,%eax 344ebfedea0SLionel Sambuc adcl $0,%edx 345ebfedea0SLionel Sambuc movl %eax,4(%edi) 346ebfedea0SLionel Sambuc movl %edx,%esi 347ebfedea0SLionel Sambuc 348ebfedea0SLionel Sambuc movl 8(%ebx),%eax 349ebfedea0SLionel Sambuc mull %ecx 350ebfedea0SLionel Sambuc addl %esi,%eax 351ebfedea0SLionel Sambuc adcl $0,%edx 352ebfedea0SLionel Sambuc movl %eax,8(%edi) 353ebfedea0SLionel Sambuc movl %edx,%esi 354ebfedea0SLionel Sambuc 355ebfedea0SLionel Sambuc movl 12(%ebx),%eax 356ebfedea0SLionel Sambuc mull %ecx 357ebfedea0SLionel Sambuc addl %esi,%eax 358ebfedea0SLionel Sambuc adcl $0,%edx 359ebfedea0SLionel Sambuc movl %eax,12(%edi) 360ebfedea0SLionel Sambuc movl %edx,%esi 361ebfedea0SLionel Sambuc 362ebfedea0SLionel Sambuc movl 16(%ebx),%eax 363ebfedea0SLionel Sambuc mull %ecx 364ebfedea0SLionel Sambuc addl %esi,%eax 365ebfedea0SLionel Sambuc adcl $0,%edx 366ebfedea0SLionel Sambuc movl %eax,16(%edi) 367ebfedea0SLionel Sambuc movl %edx,%esi 368ebfedea0SLionel Sambuc 369ebfedea0SLionel Sambuc movl 20(%ebx),%eax 370ebfedea0SLionel Sambuc mull %ecx 371ebfedea0SLionel Sambuc addl %esi,%eax 372ebfedea0SLionel Sambuc adcl $0,%edx 373ebfedea0SLionel Sambuc movl %eax,20(%edi) 374ebfedea0SLionel Sambuc movl %edx,%esi 375ebfedea0SLionel Sambuc 376ebfedea0SLionel Sambuc movl 24(%ebx),%eax 377ebfedea0SLionel Sambuc mull %ecx 378ebfedea0SLionel Sambuc addl %esi,%eax 379ebfedea0SLionel Sambuc adcl $0,%edx 380ebfedea0SLionel Sambuc movl %eax,24(%edi) 381ebfedea0SLionel Sambuc movl %edx,%esi 382ebfedea0SLionel Sambuc 383ebfedea0SLionel Sambuc movl 28(%ebx),%eax 384ebfedea0SLionel Sambuc mull %ecx 385ebfedea0SLionel Sambuc addl %esi,%eax 386ebfedea0SLionel Sambuc adcl $0,%edx 387ebfedea0SLionel Sambuc movl %eax,28(%edi) 388ebfedea0SLionel Sambuc movl %edx,%esi 389ebfedea0SLionel Sambuc 390ebfedea0SLionel Sambuc addl $32,%ebx 391ebfedea0SLionel Sambuc addl $32,%edi 392ebfedea0SLionel Sambuc subl $8,%ebp 393*0a6a1f1dSLionel Sambuc jz .L013mw_finish 394*0a6a1f1dSLionel Sambuc jmp .L014mw_loop 395*0a6a1f1dSLionel Sambuc.L013mw_finish: 396ebfedea0SLionel Sambuc movl 28(%esp),%ebp 397ebfedea0SLionel Sambuc andl $7,%ebp 398*0a6a1f1dSLionel Sambuc jnz .L015mw_finish2 399*0a6a1f1dSLionel Sambuc jmp .L016mw_end 400*0a6a1f1dSLionel Sambuc.L015mw_finish2: 401ebfedea0SLionel Sambuc 402ebfedea0SLionel Sambuc movl (%ebx),%eax 403ebfedea0SLionel Sambuc mull %ecx 404ebfedea0SLionel Sambuc addl %esi,%eax 405ebfedea0SLionel Sambuc adcl $0,%edx 406ebfedea0SLionel Sambuc movl %eax,(%edi) 407ebfedea0SLionel Sambuc movl %edx,%esi 408ebfedea0SLionel Sambuc decl %ebp 409*0a6a1f1dSLionel Sambuc jz .L016mw_end 410ebfedea0SLionel Sambuc 411ebfedea0SLionel Sambuc movl 4(%ebx),%eax 412ebfedea0SLionel Sambuc mull %ecx 413ebfedea0SLionel Sambuc addl %esi,%eax 414ebfedea0SLionel Sambuc adcl $0,%edx 415ebfedea0SLionel Sambuc movl %eax,4(%edi) 416ebfedea0SLionel Sambuc movl %edx,%esi 417ebfedea0SLionel Sambuc decl %ebp 418*0a6a1f1dSLionel Sambuc jz .L016mw_end 419ebfedea0SLionel Sambuc 420ebfedea0SLionel Sambuc movl 8(%ebx),%eax 421ebfedea0SLionel Sambuc mull %ecx 422ebfedea0SLionel Sambuc addl %esi,%eax 423ebfedea0SLionel Sambuc adcl $0,%edx 424ebfedea0SLionel Sambuc movl %eax,8(%edi) 425ebfedea0SLionel Sambuc movl %edx,%esi 426ebfedea0SLionel Sambuc decl %ebp 427*0a6a1f1dSLionel Sambuc jz .L016mw_end 428ebfedea0SLionel Sambuc 429ebfedea0SLionel Sambuc movl 12(%ebx),%eax 430ebfedea0SLionel Sambuc mull %ecx 431ebfedea0SLionel Sambuc addl %esi,%eax 432ebfedea0SLionel Sambuc adcl $0,%edx 433ebfedea0SLionel Sambuc movl %eax,12(%edi) 434ebfedea0SLionel Sambuc movl %edx,%esi 435ebfedea0SLionel Sambuc decl %ebp 436*0a6a1f1dSLionel Sambuc jz .L016mw_end 437ebfedea0SLionel Sambuc 438ebfedea0SLionel Sambuc movl 16(%ebx),%eax 439ebfedea0SLionel Sambuc mull %ecx 440ebfedea0SLionel Sambuc addl %esi,%eax 441ebfedea0SLionel Sambuc adcl $0,%edx 442ebfedea0SLionel Sambuc movl %eax,16(%edi) 443ebfedea0SLionel Sambuc movl %edx,%esi 444ebfedea0SLionel Sambuc decl %ebp 445*0a6a1f1dSLionel Sambuc jz .L016mw_end 446ebfedea0SLionel Sambuc 447ebfedea0SLionel Sambuc movl 20(%ebx),%eax 448ebfedea0SLionel Sambuc mull %ecx 449ebfedea0SLionel Sambuc addl %esi,%eax 450ebfedea0SLionel Sambuc adcl $0,%edx 451ebfedea0SLionel Sambuc movl %eax,20(%edi) 452ebfedea0SLionel Sambuc movl %edx,%esi 453ebfedea0SLionel Sambuc decl %ebp 454*0a6a1f1dSLionel Sambuc jz .L016mw_end 455ebfedea0SLionel Sambuc 456ebfedea0SLionel Sambuc movl 24(%ebx),%eax 457ebfedea0SLionel Sambuc mull %ecx 458ebfedea0SLionel Sambuc addl %esi,%eax 459ebfedea0SLionel Sambuc adcl $0,%edx 460ebfedea0SLionel Sambuc movl %eax,24(%edi) 461ebfedea0SLionel Sambuc movl %edx,%esi 462*0a6a1f1dSLionel Sambuc.L016mw_end: 463ebfedea0SLionel Sambuc movl %esi,%eax 464ebfedea0SLionel Sambuc popl %edi 465ebfedea0SLionel Sambuc popl %esi 466ebfedea0SLionel Sambuc popl %ebx 467ebfedea0SLionel Sambuc popl %ebp 468ebfedea0SLionel Sambuc ret 469ebfedea0SLionel Sambuc.size bn_mul_words,.-.L_bn_mul_words_begin 470ebfedea0SLionel Sambuc.globl bn_sqr_words 471ebfedea0SLionel Sambuc.type bn_sqr_words,@function 472ebfedea0SLionel Sambuc.align 16 473ebfedea0SLionel Sambucbn_sqr_words: 474ebfedea0SLionel Sambuc.L_bn_sqr_words_begin: 475*0a6a1f1dSLionel Sambuc call .L017PIC_me_up 476*0a6a1f1dSLionel Sambuc.L017PIC_me_up: 477*0a6a1f1dSLionel Sambuc popl %eax 478*0a6a1f1dSLionel Sambuc leal _GLOBAL_OFFSET_TABLE_+[.-.L017PIC_me_up](%eax),%eax 479*0a6a1f1dSLionel Sambuc movl OPENSSL_ia32cap_P@GOT(%eax),%eax 480*0a6a1f1dSLionel Sambuc btl $26,(%eax) 481*0a6a1f1dSLionel Sambuc jnc .L018sqr_non_sse2 482*0a6a1f1dSLionel Sambuc movl 4(%esp),%eax 483*0a6a1f1dSLionel Sambuc movl 8(%esp),%edx 484*0a6a1f1dSLionel Sambuc movl 12(%esp),%ecx 485*0a6a1f1dSLionel Sambuc.align 16 486*0a6a1f1dSLionel Sambuc.L019sqr_sse2_loop: 487*0a6a1f1dSLionel Sambuc movd (%edx),%mm0 488*0a6a1f1dSLionel Sambuc pmuludq %mm0,%mm0 489*0a6a1f1dSLionel Sambuc leal 4(%edx),%edx 490*0a6a1f1dSLionel Sambuc movq %mm0,(%eax) 491*0a6a1f1dSLionel Sambuc subl $1,%ecx 492*0a6a1f1dSLionel Sambuc leal 8(%eax),%eax 493*0a6a1f1dSLionel Sambuc jnz .L019sqr_sse2_loop 494*0a6a1f1dSLionel Sambuc emms 495*0a6a1f1dSLionel Sambuc ret 496*0a6a1f1dSLionel Sambuc.align 16 497*0a6a1f1dSLionel Sambuc.L018sqr_non_sse2: 498ebfedea0SLionel Sambuc pushl %ebp 499ebfedea0SLionel Sambuc pushl %ebx 500ebfedea0SLionel Sambuc pushl %esi 501ebfedea0SLionel Sambuc pushl %edi 502ebfedea0SLionel Sambuc 503ebfedea0SLionel Sambuc movl 20(%esp),%esi 504ebfedea0SLionel Sambuc movl 24(%esp),%edi 505ebfedea0SLionel Sambuc movl 28(%esp),%ebx 506ebfedea0SLionel Sambuc andl $4294967288,%ebx 507*0a6a1f1dSLionel Sambuc jz .L020sw_finish 508*0a6a1f1dSLionel Sambuc.L021sw_loop: 509ebfedea0SLionel Sambuc 510ebfedea0SLionel Sambuc movl (%edi),%eax 511ebfedea0SLionel Sambuc mull %eax 512ebfedea0SLionel Sambuc movl %eax,(%esi) 513ebfedea0SLionel Sambuc movl %edx,4(%esi) 514ebfedea0SLionel Sambuc 515ebfedea0SLionel Sambuc movl 4(%edi),%eax 516ebfedea0SLionel Sambuc mull %eax 517ebfedea0SLionel Sambuc movl %eax,8(%esi) 518ebfedea0SLionel Sambuc movl %edx,12(%esi) 519ebfedea0SLionel Sambuc 520ebfedea0SLionel Sambuc movl 8(%edi),%eax 521ebfedea0SLionel Sambuc mull %eax 522ebfedea0SLionel Sambuc movl %eax,16(%esi) 523ebfedea0SLionel Sambuc movl %edx,20(%esi) 524ebfedea0SLionel Sambuc 525ebfedea0SLionel Sambuc movl 12(%edi),%eax 526ebfedea0SLionel Sambuc mull %eax 527ebfedea0SLionel Sambuc movl %eax,24(%esi) 528ebfedea0SLionel Sambuc movl %edx,28(%esi) 529ebfedea0SLionel Sambuc 530ebfedea0SLionel Sambuc movl 16(%edi),%eax 531ebfedea0SLionel Sambuc mull %eax 532ebfedea0SLionel Sambuc movl %eax,32(%esi) 533ebfedea0SLionel Sambuc movl %edx,36(%esi) 534ebfedea0SLionel Sambuc 535ebfedea0SLionel Sambuc movl 20(%edi),%eax 536ebfedea0SLionel Sambuc mull %eax 537ebfedea0SLionel Sambuc movl %eax,40(%esi) 538ebfedea0SLionel Sambuc movl %edx,44(%esi) 539ebfedea0SLionel Sambuc 540ebfedea0SLionel Sambuc movl 24(%edi),%eax 541ebfedea0SLionel Sambuc mull %eax 542ebfedea0SLionel Sambuc movl %eax,48(%esi) 543ebfedea0SLionel Sambuc movl %edx,52(%esi) 544ebfedea0SLionel Sambuc 545ebfedea0SLionel Sambuc movl 28(%edi),%eax 546ebfedea0SLionel Sambuc mull %eax 547ebfedea0SLionel Sambuc movl %eax,56(%esi) 548ebfedea0SLionel Sambuc movl %edx,60(%esi) 549ebfedea0SLionel Sambuc 550ebfedea0SLionel Sambuc addl $32,%edi 551ebfedea0SLionel Sambuc addl $64,%esi 552ebfedea0SLionel Sambuc subl $8,%ebx 553*0a6a1f1dSLionel Sambuc jnz .L021sw_loop 554*0a6a1f1dSLionel Sambuc.L020sw_finish: 555ebfedea0SLionel Sambuc movl 28(%esp),%ebx 556ebfedea0SLionel Sambuc andl $7,%ebx 557*0a6a1f1dSLionel Sambuc jz .L022sw_end 558ebfedea0SLionel Sambuc 559ebfedea0SLionel Sambuc movl (%edi),%eax 560ebfedea0SLionel Sambuc mull %eax 561ebfedea0SLionel Sambuc movl %eax,(%esi) 562ebfedea0SLionel Sambuc decl %ebx 563ebfedea0SLionel Sambuc movl %edx,4(%esi) 564*0a6a1f1dSLionel Sambuc jz .L022sw_end 565ebfedea0SLionel Sambuc 566ebfedea0SLionel Sambuc movl 4(%edi),%eax 567ebfedea0SLionel Sambuc mull %eax 568ebfedea0SLionel Sambuc movl %eax,8(%esi) 569ebfedea0SLionel Sambuc decl %ebx 570ebfedea0SLionel Sambuc movl %edx,12(%esi) 571*0a6a1f1dSLionel Sambuc jz .L022sw_end 572ebfedea0SLionel Sambuc 573ebfedea0SLionel Sambuc movl 8(%edi),%eax 574ebfedea0SLionel Sambuc mull %eax 575ebfedea0SLionel Sambuc movl %eax,16(%esi) 576ebfedea0SLionel Sambuc decl %ebx 577ebfedea0SLionel Sambuc movl %edx,20(%esi) 578*0a6a1f1dSLionel Sambuc jz .L022sw_end 579ebfedea0SLionel Sambuc 580ebfedea0SLionel Sambuc movl 12(%edi),%eax 581ebfedea0SLionel Sambuc mull %eax 582ebfedea0SLionel Sambuc movl %eax,24(%esi) 583ebfedea0SLionel Sambuc decl %ebx 584ebfedea0SLionel Sambuc movl %edx,28(%esi) 585*0a6a1f1dSLionel Sambuc jz .L022sw_end 586ebfedea0SLionel Sambuc 587ebfedea0SLionel Sambuc movl 16(%edi),%eax 588ebfedea0SLionel Sambuc mull %eax 589ebfedea0SLionel Sambuc movl %eax,32(%esi) 590ebfedea0SLionel Sambuc decl %ebx 591ebfedea0SLionel Sambuc movl %edx,36(%esi) 592*0a6a1f1dSLionel Sambuc jz .L022sw_end 593ebfedea0SLionel Sambuc 594ebfedea0SLionel Sambuc movl 20(%edi),%eax 595ebfedea0SLionel Sambuc mull %eax 596ebfedea0SLionel Sambuc movl %eax,40(%esi) 597ebfedea0SLionel Sambuc decl %ebx 598ebfedea0SLionel Sambuc movl %edx,44(%esi) 599*0a6a1f1dSLionel Sambuc jz .L022sw_end 600ebfedea0SLionel Sambuc 601ebfedea0SLionel Sambuc movl 24(%edi),%eax 602ebfedea0SLionel Sambuc mull %eax 603ebfedea0SLionel Sambuc movl %eax,48(%esi) 604ebfedea0SLionel Sambuc movl %edx,52(%esi) 605*0a6a1f1dSLionel Sambuc.L022sw_end: 606ebfedea0SLionel Sambuc popl %edi 607ebfedea0SLionel Sambuc popl %esi 608ebfedea0SLionel Sambuc popl %ebx 609ebfedea0SLionel Sambuc popl %ebp 610ebfedea0SLionel Sambuc ret 611ebfedea0SLionel Sambuc.size bn_sqr_words,.-.L_bn_sqr_words_begin 612ebfedea0SLionel Sambuc.globl bn_div_words 613ebfedea0SLionel Sambuc.type bn_div_words,@function 614ebfedea0SLionel Sambuc.align 16 615ebfedea0SLionel Sambucbn_div_words: 616ebfedea0SLionel Sambuc.L_bn_div_words_begin: 617ebfedea0SLionel Sambuc movl 4(%esp),%edx 618ebfedea0SLionel Sambuc movl 8(%esp),%eax 619ebfedea0SLionel Sambuc movl 12(%esp),%ecx 620ebfedea0SLionel Sambuc divl %ecx 621ebfedea0SLionel Sambuc ret 622ebfedea0SLionel Sambuc.size bn_div_words,.-.L_bn_div_words_begin 623ebfedea0SLionel Sambuc.globl bn_add_words 624ebfedea0SLionel Sambuc.type bn_add_words,@function 625ebfedea0SLionel Sambuc.align 16 626ebfedea0SLionel Sambucbn_add_words: 627ebfedea0SLionel Sambuc.L_bn_add_words_begin: 628ebfedea0SLionel Sambuc pushl %ebp 629ebfedea0SLionel Sambuc pushl %ebx 630ebfedea0SLionel Sambuc pushl %esi 631ebfedea0SLionel Sambuc pushl %edi 632ebfedea0SLionel Sambuc 633ebfedea0SLionel Sambuc movl 20(%esp),%ebx 634ebfedea0SLionel Sambuc movl 24(%esp),%esi 635ebfedea0SLionel Sambuc movl 28(%esp),%edi 636ebfedea0SLionel Sambuc movl 32(%esp),%ebp 637ebfedea0SLionel Sambuc xorl %eax,%eax 638ebfedea0SLionel Sambuc andl $4294967288,%ebp 639*0a6a1f1dSLionel Sambuc jz .L023aw_finish 640*0a6a1f1dSLionel Sambuc.L024aw_loop: 641ebfedea0SLionel Sambuc 642ebfedea0SLionel Sambuc movl (%esi),%ecx 643ebfedea0SLionel Sambuc movl (%edi),%edx 644ebfedea0SLionel Sambuc addl %eax,%ecx 645ebfedea0SLionel Sambuc movl $0,%eax 646ebfedea0SLionel Sambuc adcl %eax,%eax 647ebfedea0SLionel Sambuc addl %edx,%ecx 648ebfedea0SLionel Sambuc adcl $0,%eax 649ebfedea0SLionel Sambuc movl %ecx,(%ebx) 650ebfedea0SLionel Sambuc 651ebfedea0SLionel Sambuc movl 4(%esi),%ecx 652ebfedea0SLionel Sambuc movl 4(%edi),%edx 653ebfedea0SLionel Sambuc addl %eax,%ecx 654ebfedea0SLionel Sambuc movl $0,%eax 655ebfedea0SLionel Sambuc adcl %eax,%eax 656ebfedea0SLionel Sambuc addl %edx,%ecx 657ebfedea0SLionel Sambuc adcl $0,%eax 658ebfedea0SLionel Sambuc movl %ecx,4(%ebx) 659ebfedea0SLionel Sambuc 660ebfedea0SLionel Sambuc movl 8(%esi),%ecx 661ebfedea0SLionel Sambuc movl 8(%edi),%edx 662ebfedea0SLionel Sambuc addl %eax,%ecx 663ebfedea0SLionel Sambuc movl $0,%eax 664ebfedea0SLionel Sambuc adcl %eax,%eax 665ebfedea0SLionel Sambuc addl %edx,%ecx 666ebfedea0SLionel Sambuc adcl $0,%eax 667ebfedea0SLionel Sambuc movl %ecx,8(%ebx) 668ebfedea0SLionel Sambuc 669ebfedea0SLionel Sambuc movl 12(%esi),%ecx 670ebfedea0SLionel Sambuc movl 12(%edi),%edx 671ebfedea0SLionel Sambuc addl %eax,%ecx 672ebfedea0SLionel Sambuc movl $0,%eax 673ebfedea0SLionel Sambuc adcl %eax,%eax 674ebfedea0SLionel Sambuc addl %edx,%ecx 675ebfedea0SLionel Sambuc adcl $0,%eax 676ebfedea0SLionel Sambuc movl %ecx,12(%ebx) 677ebfedea0SLionel Sambuc 678ebfedea0SLionel Sambuc movl 16(%esi),%ecx 679ebfedea0SLionel Sambuc movl 16(%edi),%edx 680ebfedea0SLionel Sambuc addl %eax,%ecx 681ebfedea0SLionel Sambuc movl $0,%eax 682ebfedea0SLionel Sambuc adcl %eax,%eax 683ebfedea0SLionel Sambuc addl %edx,%ecx 684ebfedea0SLionel Sambuc adcl $0,%eax 685ebfedea0SLionel Sambuc movl %ecx,16(%ebx) 686ebfedea0SLionel Sambuc 687ebfedea0SLionel Sambuc movl 20(%esi),%ecx 688ebfedea0SLionel Sambuc movl 20(%edi),%edx 689ebfedea0SLionel Sambuc addl %eax,%ecx 690ebfedea0SLionel Sambuc movl $0,%eax 691ebfedea0SLionel Sambuc adcl %eax,%eax 692ebfedea0SLionel Sambuc addl %edx,%ecx 693ebfedea0SLionel Sambuc adcl $0,%eax 694ebfedea0SLionel Sambuc movl %ecx,20(%ebx) 695ebfedea0SLionel Sambuc 696ebfedea0SLionel Sambuc movl 24(%esi),%ecx 697ebfedea0SLionel Sambuc movl 24(%edi),%edx 698ebfedea0SLionel Sambuc addl %eax,%ecx 699ebfedea0SLionel Sambuc movl $0,%eax 700ebfedea0SLionel Sambuc adcl %eax,%eax 701ebfedea0SLionel Sambuc addl %edx,%ecx 702ebfedea0SLionel Sambuc adcl $0,%eax 703ebfedea0SLionel Sambuc movl %ecx,24(%ebx) 704ebfedea0SLionel Sambuc 705ebfedea0SLionel Sambuc movl 28(%esi),%ecx 706ebfedea0SLionel Sambuc movl 28(%edi),%edx 707ebfedea0SLionel Sambuc addl %eax,%ecx 708ebfedea0SLionel Sambuc movl $0,%eax 709ebfedea0SLionel Sambuc adcl %eax,%eax 710ebfedea0SLionel Sambuc addl %edx,%ecx 711ebfedea0SLionel Sambuc adcl $0,%eax 712ebfedea0SLionel Sambuc movl %ecx,28(%ebx) 713ebfedea0SLionel Sambuc 714ebfedea0SLionel Sambuc addl $32,%esi 715ebfedea0SLionel Sambuc addl $32,%edi 716ebfedea0SLionel Sambuc addl $32,%ebx 717ebfedea0SLionel Sambuc subl $8,%ebp 718*0a6a1f1dSLionel Sambuc jnz .L024aw_loop 719*0a6a1f1dSLionel Sambuc.L023aw_finish: 720ebfedea0SLionel Sambuc movl 32(%esp),%ebp 721ebfedea0SLionel Sambuc andl $7,%ebp 722*0a6a1f1dSLionel Sambuc jz .L025aw_end 723ebfedea0SLionel Sambuc 724ebfedea0SLionel Sambuc movl (%esi),%ecx 725ebfedea0SLionel Sambuc movl (%edi),%edx 726ebfedea0SLionel Sambuc addl %eax,%ecx 727ebfedea0SLionel Sambuc movl $0,%eax 728ebfedea0SLionel Sambuc adcl %eax,%eax 729ebfedea0SLionel Sambuc addl %edx,%ecx 730ebfedea0SLionel Sambuc adcl $0,%eax 731ebfedea0SLionel Sambuc decl %ebp 732ebfedea0SLionel Sambuc movl %ecx,(%ebx) 733*0a6a1f1dSLionel Sambuc jz .L025aw_end 734ebfedea0SLionel Sambuc 735ebfedea0SLionel Sambuc movl 4(%esi),%ecx 736ebfedea0SLionel Sambuc movl 4(%edi),%edx 737ebfedea0SLionel Sambuc addl %eax,%ecx 738ebfedea0SLionel Sambuc movl $0,%eax 739ebfedea0SLionel Sambuc adcl %eax,%eax 740ebfedea0SLionel Sambuc addl %edx,%ecx 741ebfedea0SLionel Sambuc adcl $0,%eax 742ebfedea0SLionel Sambuc decl %ebp 743ebfedea0SLionel Sambuc movl %ecx,4(%ebx) 744*0a6a1f1dSLionel Sambuc jz .L025aw_end 745ebfedea0SLionel Sambuc 746ebfedea0SLionel Sambuc movl 8(%esi),%ecx 747ebfedea0SLionel Sambuc movl 8(%edi),%edx 748ebfedea0SLionel Sambuc addl %eax,%ecx 749ebfedea0SLionel Sambuc movl $0,%eax 750ebfedea0SLionel Sambuc adcl %eax,%eax 751ebfedea0SLionel Sambuc addl %edx,%ecx 752ebfedea0SLionel Sambuc adcl $0,%eax 753ebfedea0SLionel Sambuc decl %ebp 754ebfedea0SLionel Sambuc movl %ecx,8(%ebx) 755*0a6a1f1dSLionel Sambuc jz .L025aw_end 756ebfedea0SLionel Sambuc 757ebfedea0SLionel Sambuc movl 12(%esi),%ecx 758ebfedea0SLionel Sambuc movl 12(%edi),%edx 759ebfedea0SLionel Sambuc addl %eax,%ecx 760ebfedea0SLionel Sambuc movl $0,%eax 761ebfedea0SLionel Sambuc adcl %eax,%eax 762ebfedea0SLionel Sambuc addl %edx,%ecx 763ebfedea0SLionel Sambuc adcl $0,%eax 764ebfedea0SLionel Sambuc decl %ebp 765ebfedea0SLionel Sambuc movl %ecx,12(%ebx) 766*0a6a1f1dSLionel Sambuc jz .L025aw_end 767ebfedea0SLionel Sambuc 768ebfedea0SLionel Sambuc movl 16(%esi),%ecx 769ebfedea0SLionel Sambuc movl 16(%edi),%edx 770ebfedea0SLionel Sambuc addl %eax,%ecx 771ebfedea0SLionel Sambuc movl $0,%eax 772ebfedea0SLionel Sambuc adcl %eax,%eax 773ebfedea0SLionel Sambuc addl %edx,%ecx 774ebfedea0SLionel Sambuc adcl $0,%eax 775ebfedea0SLionel Sambuc decl %ebp 776ebfedea0SLionel Sambuc movl %ecx,16(%ebx) 777*0a6a1f1dSLionel Sambuc jz .L025aw_end 778ebfedea0SLionel Sambuc 779ebfedea0SLionel Sambuc movl 20(%esi),%ecx 780ebfedea0SLionel Sambuc movl 20(%edi),%edx 781ebfedea0SLionel Sambuc addl %eax,%ecx 782ebfedea0SLionel Sambuc movl $0,%eax 783ebfedea0SLionel Sambuc adcl %eax,%eax 784ebfedea0SLionel Sambuc addl %edx,%ecx 785ebfedea0SLionel Sambuc adcl $0,%eax 786ebfedea0SLionel Sambuc decl %ebp 787ebfedea0SLionel Sambuc movl %ecx,20(%ebx) 788*0a6a1f1dSLionel Sambuc jz .L025aw_end 789ebfedea0SLionel Sambuc 790ebfedea0SLionel Sambuc movl 24(%esi),%ecx 791ebfedea0SLionel Sambuc movl 24(%edi),%edx 792ebfedea0SLionel Sambuc addl %eax,%ecx 793ebfedea0SLionel Sambuc movl $0,%eax 794ebfedea0SLionel Sambuc adcl %eax,%eax 795ebfedea0SLionel Sambuc addl %edx,%ecx 796ebfedea0SLionel Sambuc adcl $0,%eax 797ebfedea0SLionel Sambuc movl %ecx,24(%ebx) 798*0a6a1f1dSLionel Sambuc.L025aw_end: 799ebfedea0SLionel Sambuc popl %edi 800ebfedea0SLionel Sambuc popl %esi 801ebfedea0SLionel Sambuc popl %ebx 802ebfedea0SLionel Sambuc popl %ebp 803ebfedea0SLionel Sambuc ret 804ebfedea0SLionel Sambuc.size bn_add_words,.-.L_bn_add_words_begin 805ebfedea0SLionel Sambuc.globl bn_sub_words 806ebfedea0SLionel Sambuc.type bn_sub_words,@function 807ebfedea0SLionel Sambuc.align 16 808ebfedea0SLionel Sambucbn_sub_words: 809ebfedea0SLionel Sambuc.L_bn_sub_words_begin: 810ebfedea0SLionel Sambuc pushl %ebp 811ebfedea0SLionel Sambuc pushl %ebx 812ebfedea0SLionel Sambuc pushl %esi 813ebfedea0SLionel Sambuc pushl %edi 814ebfedea0SLionel Sambuc 815ebfedea0SLionel Sambuc movl 20(%esp),%ebx 816ebfedea0SLionel Sambuc movl 24(%esp),%esi 817ebfedea0SLionel Sambuc movl 28(%esp),%edi 818ebfedea0SLionel Sambuc movl 32(%esp),%ebp 819ebfedea0SLionel Sambuc xorl %eax,%eax 820ebfedea0SLionel Sambuc andl $4294967288,%ebp 821*0a6a1f1dSLionel Sambuc jz .L026aw_finish 822*0a6a1f1dSLionel Sambuc.L027aw_loop: 823ebfedea0SLionel Sambuc 824ebfedea0SLionel Sambuc movl (%esi),%ecx 825ebfedea0SLionel Sambuc movl (%edi),%edx 826ebfedea0SLionel Sambuc subl %eax,%ecx 827ebfedea0SLionel Sambuc movl $0,%eax 828ebfedea0SLionel Sambuc adcl %eax,%eax 829ebfedea0SLionel Sambuc subl %edx,%ecx 830ebfedea0SLionel Sambuc adcl $0,%eax 831ebfedea0SLionel Sambuc movl %ecx,(%ebx) 832ebfedea0SLionel Sambuc 833ebfedea0SLionel Sambuc movl 4(%esi),%ecx 834ebfedea0SLionel Sambuc movl 4(%edi),%edx 835ebfedea0SLionel Sambuc subl %eax,%ecx 836ebfedea0SLionel Sambuc movl $0,%eax 837ebfedea0SLionel Sambuc adcl %eax,%eax 838ebfedea0SLionel Sambuc subl %edx,%ecx 839ebfedea0SLionel Sambuc adcl $0,%eax 840ebfedea0SLionel Sambuc movl %ecx,4(%ebx) 841ebfedea0SLionel Sambuc 842ebfedea0SLionel Sambuc movl 8(%esi),%ecx 843ebfedea0SLionel Sambuc movl 8(%edi),%edx 844ebfedea0SLionel Sambuc subl %eax,%ecx 845ebfedea0SLionel Sambuc movl $0,%eax 846ebfedea0SLionel Sambuc adcl %eax,%eax 847ebfedea0SLionel Sambuc subl %edx,%ecx 848ebfedea0SLionel Sambuc adcl $0,%eax 849ebfedea0SLionel Sambuc movl %ecx,8(%ebx) 850ebfedea0SLionel Sambuc 851ebfedea0SLionel Sambuc movl 12(%esi),%ecx 852ebfedea0SLionel Sambuc movl 12(%edi),%edx 853ebfedea0SLionel Sambuc subl %eax,%ecx 854ebfedea0SLionel Sambuc movl $0,%eax 855ebfedea0SLionel Sambuc adcl %eax,%eax 856ebfedea0SLionel Sambuc subl %edx,%ecx 857ebfedea0SLionel Sambuc adcl $0,%eax 858ebfedea0SLionel Sambuc movl %ecx,12(%ebx) 859ebfedea0SLionel Sambuc 860ebfedea0SLionel Sambuc movl 16(%esi),%ecx 861ebfedea0SLionel Sambuc movl 16(%edi),%edx 862ebfedea0SLionel Sambuc subl %eax,%ecx 863ebfedea0SLionel Sambuc movl $0,%eax 864ebfedea0SLionel Sambuc adcl %eax,%eax 865ebfedea0SLionel Sambuc subl %edx,%ecx 866ebfedea0SLionel Sambuc adcl $0,%eax 867ebfedea0SLionel Sambuc movl %ecx,16(%ebx) 868ebfedea0SLionel Sambuc 869ebfedea0SLionel Sambuc movl 20(%esi),%ecx 870ebfedea0SLionel Sambuc movl 20(%edi),%edx 871ebfedea0SLionel Sambuc subl %eax,%ecx 872ebfedea0SLionel Sambuc movl $0,%eax 873ebfedea0SLionel Sambuc adcl %eax,%eax 874ebfedea0SLionel Sambuc subl %edx,%ecx 875ebfedea0SLionel Sambuc adcl $0,%eax 876ebfedea0SLionel Sambuc movl %ecx,20(%ebx) 877ebfedea0SLionel Sambuc 878ebfedea0SLionel Sambuc movl 24(%esi),%ecx 879ebfedea0SLionel Sambuc movl 24(%edi),%edx 880ebfedea0SLionel Sambuc subl %eax,%ecx 881ebfedea0SLionel Sambuc movl $0,%eax 882ebfedea0SLionel Sambuc adcl %eax,%eax 883ebfedea0SLionel Sambuc subl %edx,%ecx 884ebfedea0SLionel Sambuc adcl $0,%eax 885ebfedea0SLionel Sambuc movl %ecx,24(%ebx) 886ebfedea0SLionel Sambuc 887ebfedea0SLionel Sambuc movl 28(%esi),%ecx 888ebfedea0SLionel Sambuc movl 28(%edi),%edx 889ebfedea0SLionel Sambuc subl %eax,%ecx 890ebfedea0SLionel Sambuc movl $0,%eax 891ebfedea0SLionel Sambuc adcl %eax,%eax 892ebfedea0SLionel Sambuc subl %edx,%ecx 893ebfedea0SLionel Sambuc adcl $0,%eax 894ebfedea0SLionel Sambuc movl %ecx,28(%ebx) 895ebfedea0SLionel Sambuc 896ebfedea0SLionel Sambuc addl $32,%esi 897ebfedea0SLionel Sambuc addl $32,%edi 898ebfedea0SLionel Sambuc addl $32,%ebx 899ebfedea0SLionel Sambuc subl $8,%ebp 900*0a6a1f1dSLionel Sambuc jnz .L027aw_loop 901*0a6a1f1dSLionel Sambuc.L026aw_finish: 902ebfedea0SLionel Sambuc movl 32(%esp),%ebp 903ebfedea0SLionel Sambuc andl $7,%ebp 904*0a6a1f1dSLionel Sambuc jz .L028aw_end 905ebfedea0SLionel Sambuc 906ebfedea0SLionel Sambuc movl (%esi),%ecx 907ebfedea0SLionel Sambuc movl (%edi),%edx 908ebfedea0SLionel Sambuc subl %eax,%ecx 909ebfedea0SLionel Sambuc movl $0,%eax 910ebfedea0SLionel Sambuc adcl %eax,%eax 911ebfedea0SLionel Sambuc subl %edx,%ecx 912ebfedea0SLionel Sambuc adcl $0,%eax 913ebfedea0SLionel Sambuc decl %ebp 914ebfedea0SLionel Sambuc movl %ecx,(%ebx) 915*0a6a1f1dSLionel Sambuc jz .L028aw_end 916ebfedea0SLionel Sambuc 917ebfedea0SLionel Sambuc movl 4(%esi),%ecx 918ebfedea0SLionel Sambuc movl 4(%edi),%edx 919ebfedea0SLionel Sambuc subl %eax,%ecx 920ebfedea0SLionel Sambuc movl $0,%eax 921ebfedea0SLionel Sambuc adcl %eax,%eax 922ebfedea0SLionel Sambuc subl %edx,%ecx 923ebfedea0SLionel Sambuc adcl $0,%eax 924ebfedea0SLionel Sambuc decl %ebp 925ebfedea0SLionel Sambuc movl %ecx,4(%ebx) 926*0a6a1f1dSLionel Sambuc jz .L028aw_end 927ebfedea0SLionel Sambuc 928ebfedea0SLionel Sambuc movl 8(%esi),%ecx 929ebfedea0SLionel Sambuc movl 8(%edi),%edx 930ebfedea0SLionel Sambuc subl %eax,%ecx 931ebfedea0SLionel Sambuc movl $0,%eax 932ebfedea0SLionel Sambuc adcl %eax,%eax 933ebfedea0SLionel Sambuc subl %edx,%ecx 934ebfedea0SLionel Sambuc adcl $0,%eax 935ebfedea0SLionel Sambuc decl %ebp 936ebfedea0SLionel Sambuc movl %ecx,8(%ebx) 937*0a6a1f1dSLionel Sambuc jz .L028aw_end 938ebfedea0SLionel Sambuc 939ebfedea0SLionel Sambuc movl 12(%esi),%ecx 940ebfedea0SLionel Sambuc movl 12(%edi),%edx 941ebfedea0SLionel Sambuc subl %eax,%ecx 942ebfedea0SLionel Sambuc movl $0,%eax 943ebfedea0SLionel Sambuc adcl %eax,%eax 944ebfedea0SLionel Sambuc subl %edx,%ecx 945ebfedea0SLionel Sambuc adcl $0,%eax 946ebfedea0SLionel Sambuc decl %ebp 947ebfedea0SLionel Sambuc movl %ecx,12(%ebx) 948*0a6a1f1dSLionel Sambuc jz .L028aw_end 949ebfedea0SLionel Sambuc 950ebfedea0SLionel Sambuc movl 16(%esi),%ecx 951ebfedea0SLionel Sambuc movl 16(%edi),%edx 952ebfedea0SLionel Sambuc subl %eax,%ecx 953ebfedea0SLionel Sambuc movl $0,%eax 954ebfedea0SLionel Sambuc adcl %eax,%eax 955ebfedea0SLionel Sambuc subl %edx,%ecx 956ebfedea0SLionel Sambuc adcl $0,%eax 957ebfedea0SLionel Sambuc decl %ebp 958ebfedea0SLionel Sambuc movl %ecx,16(%ebx) 959*0a6a1f1dSLionel Sambuc jz .L028aw_end 960ebfedea0SLionel Sambuc 961ebfedea0SLionel Sambuc movl 20(%esi),%ecx 962ebfedea0SLionel Sambuc movl 20(%edi),%edx 963ebfedea0SLionel Sambuc subl %eax,%ecx 964ebfedea0SLionel Sambuc movl $0,%eax 965ebfedea0SLionel Sambuc adcl %eax,%eax 966ebfedea0SLionel Sambuc subl %edx,%ecx 967ebfedea0SLionel Sambuc adcl $0,%eax 968ebfedea0SLionel Sambuc decl %ebp 969ebfedea0SLionel Sambuc movl %ecx,20(%ebx) 970*0a6a1f1dSLionel Sambuc jz .L028aw_end 971ebfedea0SLionel Sambuc 972ebfedea0SLionel Sambuc movl 24(%esi),%ecx 973ebfedea0SLionel Sambuc movl 24(%edi),%edx 974ebfedea0SLionel Sambuc subl %eax,%ecx 975ebfedea0SLionel Sambuc movl $0,%eax 976ebfedea0SLionel Sambuc adcl %eax,%eax 977ebfedea0SLionel Sambuc subl %edx,%ecx 978ebfedea0SLionel Sambuc adcl $0,%eax 979ebfedea0SLionel Sambuc movl %ecx,24(%ebx) 980*0a6a1f1dSLionel Sambuc.L028aw_end: 981ebfedea0SLionel Sambuc popl %edi 982ebfedea0SLionel Sambuc popl %esi 983ebfedea0SLionel Sambuc popl %ebx 984ebfedea0SLionel Sambuc popl %ebp 985ebfedea0SLionel Sambuc ret 986ebfedea0SLionel Sambuc.size bn_sub_words,.-.L_bn_sub_words_begin 987ebfedea0SLionel Sambuc.globl bn_sub_part_words 988ebfedea0SLionel Sambuc.type bn_sub_part_words,@function 989ebfedea0SLionel Sambuc.align 16 990ebfedea0SLionel Sambucbn_sub_part_words: 991ebfedea0SLionel Sambuc.L_bn_sub_part_words_begin: 992ebfedea0SLionel Sambuc pushl %ebp 993ebfedea0SLionel Sambuc pushl %ebx 994ebfedea0SLionel Sambuc pushl %esi 995ebfedea0SLionel Sambuc pushl %edi 996ebfedea0SLionel Sambuc 997ebfedea0SLionel Sambuc movl 20(%esp),%ebx 998ebfedea0SLionel Sambuc movl 24(%esp),%esi 999ebfedea0SLionel Sambuc movl 28(%esp),%edi 1000ebfedea0SLionel Sambuc movl 32(%esp),%ebp 1001ebfedea0SLionel Sambuc xorl %eax,%eax 1002ebfedea0SLionel Sambuc andl $4294967288,%ebp 1003*0a6a1f1dSLionel Sambuc jz .L029aw_finish 1004*0a6a1f1dSLionel Sambuc.L030aw_loop: 1005ebfedea0SLionel Sambuc 1006ebfedea0SLionel Sambuc movl (%esi),%ecx 1007ebfedea0SLionel Sambuc movl (%edi),%edx 1008ebfedea0SLionel Sambuc subl %eax,%ecx 1009ebfedea0SLionel Sambuc movl $0,%eax 1010ebfedea0SLionel Sambuc adcl %eax,%eax 1011ebfedea0SLionel Sambuc subl %edx,%ecx 1012ebfedea0SLionel Sambuc adcl $0,%eax 1013ebfedea0SLionel Sambuc movl %ecx,(%ebx) 1014ebfedea0SLionel Sambuc 1015ebfedea0SLionel Sambuc movl 4(%esi),%ecx 1016ebfedea0SLionel Sambuc movl 4(%edi),%edx 1017ebfedea0SLionel Sambuc subl %eax,%ecx 1018ebfedea0SLionel Sambuc movl $0,%eax 1019ebfedea0SLionel Sambuc adcl %eax,%eax 1020ebfedea0SLionel Sambuc subl %edx,%ecx 1021ebfedea0SLionel Sambuc adcl $0,%eax 1022ebfedea0SLionel Sambuc movl %ecx,4(%ebx) 1023ebfedea0SLionel Sambuc 1024ebfedea0SLionel Sambuc movl 8(%esi),%ecx 1025ebfedea0SLionel Sambuc movl 8(%edi),%edx 1026ebfedea0SLionel Sambuc subl %eax,%ecx 1027ebfedea0SLionel Sambuc movl $0,%eax 1028ebfedea0SLionel Sambuc adcl %eax,%eax 1029ebfedea0SLionel Sambuc subl %edx,%ecx 1030ebfedea0SLionel Sambuc adcl $0,%eax 1031ebfedea0SLionel Sambuc movl %ecx,8(%ebx) 1032ebfedea0SLionel Sambuc 1033ebfedea0SLionel Sambuc movl 12(%esi),%ecx 1034ebfedea0SLionel Sambuc movl 12(%edi),%edx 1035ebfedea0SLionel Sambuc subl %eax,%ecx 1036ebfedea0SLionel Sambuc movl $0,%eax 1037ebfedea0SLionel Sambuc adcl %eax,%eax 1038ebfedea0SLionel Sambuc subl %edx,%ecx 1039ebfedea0SLionel Sambuc adcl $0,%eax 1040ebfedea0SLionel Sambuc movl %ecx,12(%ebx) 1041ebfedea0SLionel Sambuc 1042ebfedea0SLionel Sambuc movl 16(%esi),%ecx 1043ebfedea0SLionel Sambuc movl 16(%edi),%edx 1044ebfedea0SLionel Sambuc subl %eax,%ecx 1045ebfedea0SLionel Sambuc movl $0,%eax 1046ebfedea0SLionel Sambuc adcl %eax,%eax 1047ebfedea0SLionel Sambuc subl %edx,%ecx 1048ebfedea0SLionel Sambuc adcl $0,%eax 1049ebfedea0SLionel Sambuc movl %ecx,16(%ebx) 1050ebfedea0SLionel Sambuc 1051ebfedea0SLionel Sambuc movl 20(%esi),%ecx 1052ebfedea0SLionel Sambuc movl 20(%edi),%edx 1053ebfedea0SLionel Sambuc subl %eax,%ecx 1054ebfedea0SLionel Sambuc movl $0,%eax 1055ebfedea0SLionel Sambuc adcl %eax,%eax 1056ebfedea0SLionel Sambuc subl %edx,%ecx 1057ebfedea0SLionel Sambuc adcl $0,%eax 1058ebfedea0SLionel Sambuc movl %ecx,20(%ebx) 1059ebfedea0SLionel Sambuc 1060ebfedea0SLionel Sambuc movl 24(%esi),%ecx 1061ebfedea0SLionel Sambuc movl 24(%edi),%edx 1062ebfedea0SLionel Sambuc subl %eax,%ecx 1063ebfedea0SLionel Sambuc movl $0,%eax 1064ebfedea0SLionel Sambuc adcl %eax,%eax 1065ebfedea0SLionel Sambuc subl %edx,%ecx 1066ebfedea0SLionel Sambuc adcl $0,%eax 1067ebfedea0SLionel Sambuc movl %ecx,24(%ebx) 1068ebfedea0SLionel Sambuc 1069ebfedea0SLionel Sambuc movl 28(%esi),%ecx 1070ebfedea0SLionel Sambuc movl 28(%edi),%edx 1071ebfedea0SLionel Sambuc subl %eax,%ecx 1072ebfedea0SLionel Sambuc movl $0,%eax 1073ebfedea0SLionel Sambuc adcl %eax,%eax 1074ebfedea0SLionel Sambuc subl %edx,%ecx 1075ebfedea0SLionel Sambuc adcl $0,%eax 1076ebfedea0SLionel Sambuc movl %ecx,28(%ebx) 1077ebfedea0SLionel Sambuc 1078ebfedea0SLionel Sambuc addl $32,%esi 1079ebfedea0SLionel Sambuc addl $32,%edi 1080ebfedea0SLionel Sambuc addl $32,%ebx 1081ebfedea0SLionel Sambuc subl $8,%ebp 1082*0a6a1f1dSLionel Sambuc jnz .L030aw_loop 1083*0a6a1f1dSLionel Sambuc.L029aw_finish: 1084ebfedea0SLionel Sambuc movl 32(%esp),%ebp 1085ebfedea0SLionel Sambuc andl $7,%ebp 1086*0a6a1f1dSLionel Sambuc jz .L031aw_end 1087ebfedea0SLionel Sambuc 1088ebfedea0SLionel Sambuc movl (%esi),%ecx 1089ebfedea0SLionel Sambuc movl (%edi),%edx 1090ebfedea0SLionel Sambuc subl %eax,%ecx 1091ebfedea0SLionel Sambuc movl $0,%eax 1092ebfedea0SLionel Sambuc adcl %eax,%eax 1093ebfedea0SLionel Sambuc subl %edx,%ecx 1094ebfedea0SLionel Sambuc adcl $0,%eax 1095ebfedea0SLionel Sambuc movl %ecx,(%ebx) 1096ebfedea0SLionel Sambuc addl $4,%esi 1097ebfedea0SLionel Sambuc addl $4,%edi 1098ebfedea0SLionel Sambuc addl $4,%ebx 1099ebfedea0SLionel Sambuc decl %ebp 1100*0a6a1f1dSLionel Sambuc jz .L031aw_end 1101ebfedea0SLionel Sambuc 1102ebfedea0SLionel Sambuc movl (%esi),%ecx 1103ebfedea0SLionel Sambuc movl (%edi),%edx 1104ebfedea0SLionel Sambuc subl %eax,%ecx 1105ebfedea0SLionel Sambuc movl $0,%eax 1106ebfedea0SLionel Sambuc adcl %eax,%eax 1107ebfedea0SLionel Sambuc subl %edx,%ecx 1108ebfedea0SLionel Sambuc adcl $0,%eax 1109ebfedea0SLionel Sambuc movl %ecx,(%ebx) 1110ebfedea0SLionel Sambuc addl $4,%esi 1111ebfedea0SLionel Sambuc addl $4,%edi 1112ebfedea0SLionel Sambuc addl $4,%ebx 1113ebfedea0SLionel Sambuc decl %ebp 1114*0a6a1f1dSLionel Sambuc jz .L031aw_end 1115ebfedea0SLionel Sambuc 1116ebfedea0SLionel Sambuc movl (%esi),%ecx 1117ebfedea0SLionel Sambuc movl (%edi),%edx 1118ebfedea0SLionel Sambuc subl %eax,%ecx 1119ebfedea0SLionel Sambuc movl $0,%eax 1120ebfedea0SLionel Sambuc adcl %eax,%eax 1121ebfedea0SLionel Sambuc subl %edx,%ecx 1122ebfedea0SLionel Sambuc adcl $0,%eax 1123ebfedea0SLionel Sambuc movl %ecx,(%ebx) 1124ebfedea0SLionel Sambuc addl $4,%esi 1125ebfedea0SLionel Sambuc addl $4,%edi 1126ebfedea0SLionel Sambuc addl $4,%ebx 1127ebfedea0SLionel Sambuc decl %ebp 1128*0a6a1f1dSLionel Sambuc jz .L031aw_end 1129ebfedea0SLionel Sambuc 1130ebfedea0SLionel Sambuc movl (%esi),%ecx 1131ebfedea0SLionel Sambuc movl (%edi),%edx 1132ebfedea0SLionel Sambuc subl %eax,%ecx 1133ebfedea0SLionel Sambuc movl $0,%eax 1134ebfedea0SLionel Sambuc adcl %eax,%eax 1135ebfedea0SLionel Sambuc subl %edx,%ecx 1136ebfedea0SLionel Sambuc adcl $0,%eax 1137ebfedea0SLionel Sambuc movl %ecx,(%ebx) 1138ebfedea0SLionel Sambuc addl $4,%esi 1139ebfedea0SLionel Sambuc addl $4,%edi 1140ebfedea0SLionel Sambuc addl $4,%ebx 1141ebfedea0SLionel Sambuc decl %ebp 1142*0a6a1f1dSLionel Sambuc jz .L031aw_end 1143ebfedea0SLionel Sambuc 1144ebfedea0SLionel Sambuc movl (%esi),%ecx 1145ebfedea0SLionel Sambuc movl (%edi),%edx 1146ebfedea0SLionel Sambuc subl %eax,%ecx 1147ebfedea0SLionel Sambuc movl $0,%eax 1148ebfedea0SLionel Sambuc adcl %eax,%eax 1149ebfedea0SLionel Sambuc subl %edx,%ecx 1150ebfedea0SLionel Sambuc adcl $0,%eax 1151ebfedea0SLionel Sambuc movl %ecx,(%ebx) 1152ebfedea0SLionel Sambuc addl $4,%esi 1153ebfedea0SLionel Sambuc addl $4,%edi 1154ebfedea0SLionel Sambuc addl $4,%ebx 1155ebfedea0SLionel Sambuc decl %ebp 1156*0a6a1f1dSLionel Sambuc jz .L031aw_end 1157ebfedea0SLionel Sambuc 1158ebfedea0SLionel Sambuc movl (%esi),%ecx 1159ebfedea0SLionel Sambuc movl (%edi),%edx 1160ebfedea0SLionel Sambuc subl %eax,%ecx 1161ebfedea0SLionel Sambuc movl $0,%eax 1162ebfedea0SLionel Sambuc adcl %eax,%eax 1163ebfedea0SLionel Sambuc subl %edx,%ecx 1164ebfedea0SLionel Sambuc adcl $0,%eax 1165ebfedea0SLionel Sambuc movl %ecx,(%ebx) 1166ebfedea0SLionel Sambuc addl $4,%esi 1167ebfedea0SLionel Sambuc addl $4,%edi 1168ebfedea0SLionel Sambuc addl $4,%ebx 1169ebfedea0SLionel Sambuc decl %ebp 1170*0a6a1f1dSLionel Sambuc jz .L031aw_end 1171ebfedea0SLionel Sambuc 1172ebfedea0SLionel Sambuc movl (%esi),%ecx 1173ebfedea0SLionel Sambuc movl (%edi),%edx 1174ebfedea0SLionel Sambuc subl %eax,%ecx 1175ebfedea0SLionel Sambuc movl $0,%eax 1176ebfedea0SLionel Sambuc adcl %eax,%eax 1177ebfedea0SLionel Sambuc subl %edx,%ecx 1178ebfedea0SLionel Sambuc adcl $0,%eax 1179ebfedea0SLionel Sambuc movl %ecx,(%ebx) 1180ebfedea0SLionel Sambuc addl $4,%esi 1181ebfedea0SLionel Sambuc addl $4,%edi 1182ebfedea0SLionel Sambuc addl $4,%ebx 1183*0a6a1f1dSLionel Sambuc.L031aw_end: 1184ebfedea0SLionel Sambuc cmpl $0,36(%esp) 1185*0a6a1f1dSLionel Sambuc je .L032pw_end 1186ebfedea0SLionel Sambuc movl 36(%esp),%ebp 1187ebfedea0SLionel Sambuc cmpl $0,%ebp 1188*0a6a1f1dSLionel Sambuc je .L032pw_end 1189*0a6a1f1dSLionel Sambuc jge .L033pw_pos 1190ebfedea0SLionel Sambuc 1191ebfedea0SLionel Sambuc movl $0,%edx 1192ebfedea0SLionel Sambuc subl %ebp,%edx 1193ebfedea0SLionel Sambuc movl %edx,%ebp 1194ebfedea0SLionel Sambuc andl $4294967288,%ebp 1195*0a6a1f1dSLionel Sambuc jz .L034pw_neg_finish 1196*0a6a1f1dSLionel Sambuc.L035pw_neg_loop: 1197ebfedea0SLionel Sambuc 1198ebfedea0SLionel Sambuc movl $0,%ecx 1199ebfedea0SLionel Sambuc movl (%edi),%edx 1200ebfedea0SLionel Sambuc subl %eax,%ecx 1201ebfedea0SLionel Sambuc movl $0,%eax 1202ebfedea0SLionel Sambuc adcl %eax,%eax 1203ebfedea0SLionel Sambuc subl %edx,%ecx 1204ebfedea0SLionel Sambuc adcl $0,%eax 1205ebfedea0SLionel Sambuc movl %ecx,(%ebx) 1206ebfedea0SLionel Sambuc 1207ebfedea0SLionel Sambuc movl $0,%ecx 1208ebfedea0SLionel Sambuc movl 4(%edi),%edx 1209ebfedea0SLionel Sambuc subl %eax,%ecx 1210ebfedea0SLionel Sambuc movl $0,%eax 1211ebfedea0SLionel Sambuc adcl %eax,%eax 1212ebfedea0SLionel Sambuc subl %edx,%ecx 1213ebfedea0SLionel Sambuc adcl $0,%eax 1214ebfedea0SLionel Sambuc movl %ecx,4(%ebx) 1215ebfedea0SLionel Sambuc 1216ebfedea0SLionel Sambuc movl $0,%ecx 1217ebfedea0SLionel Sambuc movl 8(%edi),%edx 1218ebfedea0SLionel Sambuc subl %eax,%ecx 1219ebfedea0SLionel Sambuc movl $0,%eax 1220ebfedea0SLionel Sambuc adcl %eax,%eax 1221ebfedea0SLionel Sambuc subl %edx,%ecx 1222ebfedea0SLionel Sambuc adcl $0,%eax 1223ebfedea0SLionel Sambuc movl %ecx,8(%ebx) 1224ebfedea0SLionel Sambuc 1225ebfedea0SLionel Sambuc movl $0,%ecx 1226ebfedea0SLionel Sambuc movl 12(%edi),%edx 1227ebfedea0SLionel Sambuc subl %eax,%ecx 1228ebfedea0SLionel Sambuc movl $0,%eax 1229ebfedea0SLionel Sambuc adcl %eax,%eax 1230ebfedea0SLionel Sambuc subl %edx,%ecx 1231ebfedea0SLionel Sambuc adcl $0,%eax 1232ebfedea0SLionel Sambuc movl %ecx,12(%ebx) 1233ebfedea0SLionel Sambuc 1234ebfedea0SLionel Sambuc movl $0,%ecx 1235ebfedea0SLionel Sambuc movl 16(%edi),%edx 1236ebfedea0SLionel Sambuc subl %eax,%ecx 1237ebfedea0SLionel Sambuc movl $0,%eax 1238ebfedea0SLionel Sambuc adcl %eax,%eax 1239ebfedea0SLionel Sambuc subl %edx,%ecx 1240ebfedea0SLionel Sambuc adcl $0,%eax 1241ebfedea0SLionel Sambuc movl %ecx,16(%ebx) 1242ebfedea0SLionel Sambuc 1243ebfedea0SLionel Sambuc movl $0,%ecx 1244ebfedea0SLionel Sambuc movl 20(%edi),%edx 1245ebfedea0SLionel Sambuc subl %eax,%ecx 1246ebfedea0SLionel Sambuc movl $0,%eax 1247ebfedea0SLionel Sambuc adcl %eax,%eax 1248ebfedea0SLionel Sambuc subl %edx,%ecx 1249ebfedea0SLionel Sambuc adcl $0,%eax 1250ebfedea0SLionel Sambuc movl %ecx,20(%ebx) 1251ebfedea0SLionel Sambuc 1252ebfedea0SLionel Sambuc movl $0,%ecx 1253ebfedea0SLionel Sambuc movl 24(%edi),%edx 1254ebfedea0SLionel Sambuc subl %eax,%ecx 1255ebfedea0SLionel Sambuc movl $0,%eax 1256ebfedea0SLionel Sambuc adcl %eax,%eax 1257ebfedea0SLionel Sambuc subl %edx,%ecx 1258ebfedea0SLionel Sambuc adcl $0,%eax 1259ebfedea0SLionel Sambuc movl %ecx,24(%ebx) 1260ebfedea0SLionel Sambuc 1261ebfedea0SLionel Sambuc movl $0,%ecx 1262ebfedea0SLionel Sambuc movl 28(%edi),%edx 1263ebfedea0SLionel Sambuc subl %eax,%ecx 1264ebfedea0SLionel Sambuc movl $0,%eax 1265ebfedea0SLionel Sambuc adcl %eax,%eax 1266ebfedea0SLionel Sambuc subl %edx,%ecx 1267ebfedea0SLionel Sambuc adcl $0,%eax 1268ebfedea0SLionel Sambuc movl %ecx,28(%ebx) 1269ebfedea0SLionel Sambuc 1270ebfedea0SLionel Sambuc addl $32,%edi 1271ebfedea0SLionel Sambuc addl $32,%ebx 1272ebfedea0SLionel Sambuc subl $8,%ebp 1273*0a6a1f1dSLionel Sambuc jnz .L035pw_neg_loop 1274*0a6a1f1dSLionel Sambuc.L034pw_neg_finish: 1275ebfedea0SLionel Sambuc movl 36(%esp),%edx 1276ebfedea0SLionel Sambuc movl $0,%ebp 1277ebfedea0SLionel Sambuc subl %edx,%ebp 1278ebfedea0SLionel Sambuc andl $7,%ebp 1279*0a6a1f1dSLionel Sambuc jz .L032pw_end 1280ebfedea0SLionel Sambuc 1281ebfedea0SLionel Sambuc movl $0,%ecx 1282ebfedea0SLionel Sambuc movl (%edi),%edx 1283ebfedea0SLionel Sambuc subl %eax,%ecx 1284ebfedea0SLionel Sambuc movl $0,%eax 1285ebfedea0SLionel Sambuc adcl %eax,%eax 1286ebfedea0SLionel Sambuc subl %edx,%ecx 1287ebfedea0SLionel Sambuc adcl $0,%eax 1288ebfedea0SLionel Sambuc decl %ebp 1289ebfedea0SLionel Sambuc movl %ecx,(%ebx) 1290*0a6a1f1dSLionel Sambuc jz .L032pw_end 1291ebfedea0SLionel Sambuc 1292ebfedea0SLionel Sambuc movl $0,%ecx 1293ebfedea0SLionel Sambuc movl 4(%edi),%edx 1294ebfedea0SLionel Sambuc subl %eax,%ecx 1295ebfedea0SLionel Sambuc movl $0,%eax 1296ebfedea0SLionel Sambuc adcl %eax,%eax 1297ebfedea0SLionel Sambuc subl %edx,%ecx 1298ebfedea0SLionel Sambuc adcl $0,%eax 1299ebfedea0SLionel Sambuc decl %ebp 1300ebfedea0SLionel Sambuc movl %ecx,4(%ebx) 1301*0a6a1f1dSLionel Sambuc jz .L032pw_end 1302ebfedea0SLionel Sambuc 1303ebfedea0SLionel Sambuc movl $0,%ecx 1304ebfedea0SLionel Sambuc movl 8(%edi),%edx 1305ebfedea0SLionel Sambuc subl %eax,%ecx 1306ebfedea0SLionel Sambuc movl $0,%eax 1307ebfedea0SLionel Sambuc adcl %eax,%eax 1308ebfedea0SLionel Sambuc subl %edx,%ecx 1309ebfedea0SLionel Sambuc adcl $0,%eax 1310ebfedea0SLionel Sambuc decl %ebp 1311ebfedea0SLionel Sambuc movl %ecx,8(%ebx) 1312*0a6a1f1dSLionel Sambuc jz .L032pw_end 1313ebfedea0SLionel Sambuc 1314ebfedea0SLionel Sambuc movl $0,%ecx 1315ebfedea0SLionel Sambuc movl 12(%edi),%edx 1316ebfedea0SLionel Sambuc subl %eax,%ecx 1317ebfedea0SLionel Sambuc movl $0,%eax 1318ebfedea0SLionel Sambuc adcl %eax,%eax 1319ebfedea0SLionel Sambuc subl %edx,%ecx 1320ebfedea0SLionel Sambuc adcl $0,%eax 1321ebfedea0SLionel Sambuc decl %ebp 1322ebfedea0SLionel Sambuc movl %ecx,12(%ebx) 1323*0a6a1f1dSLionel Sambuc jz .L032pw_end 1324ebfedea0SLionel Sambuc 1325ebfedea0SLionel Sambuc movl $0,%ecx 1326ebfedea0SLionel Sambuc movl 16(%edi),%edx 1327ebfedea0SLionel Sambuc subl %eax,%ecx 1328ebfedea0SLionel Sambuc movl $0,%eax 1329ebfedea0SLionel Sambuc adcl %eax,%eax 1330ebfedea0SLionel Sambuc subl %edx,%ecx 1331ebfedea0SLionel Sambuc adcl $0,%eax 1332ebfedea0SLionel Sambuc decl %ebp 1333ebfedea0SLionel Sambuc movl %ecx,16(%ebx) 1334*0a6a1f1dSLionel Sambuc jz .L032pw_end 1335ebfedea0SLionel Sambuc 1336ebfedea0SLionel Sambuc movl $0,%ecx 1337ebfedea0SLionel Sambuc movl 20(%edi),%edx 1338ebfedea0SLionel Sambuc subl %eax,%ecx 1339ebfedea0SLionel Sambuc movl $0,%eax 1340ebfedea0SLionel Sambuc adcl %eax,%eax 1341ebfedea0SLionel Sambuc subl %edx,%ecx 1342ebfedea0SLionel Sambuc adcl $0,%eax 1343ebfedea0SLionel Sambuc decl %ebp 1344ebfedea0SLionel Sambuc movl %ecx,20(%ebx) 1345*0a6a1f1dSLionel Sambuc jz .L032pw_end 1346ebfedea0SLionel Sambuc 1347ebfedea0SLionel Sambuc movl $0,%ecx 1348ebfedea0SLionel Sambuc movl 24(%edi),%edx 1349ebfedea0SLionel Sambuc subl %eax,%ecx 1350ebfedea0SLionel Sambuc movl $0,%eax 1351ebfedea0SLionel Sambuc adcl %eax,%eax 1352ebfedea0SLionel Sambuc subl %edx,%ecx 1353ebfedea0SLionel Sambuc adcl $0,%eax 1354ebfedea0SLionel Sambuc movl %ecx,24(%ebx) 1355*0a6a1f1dSLionel Sambuc jmp .L032pw_end 1356*0a6a1f1dSLionel Sambuc.L033pw_pos: 1357ebfedea0SLionel Sambuc andl $4294967288,%ebp 1358*0a6a1f1dSLionel Sambuc jz .L036pw_pos_finish 1359*0a6a1f1dSLionel Sambuc.L037pw_pos_loop: 1360ebfedea0SLionel Sambuc 1361ebfedea0SLionel Sambuc movl (%esi),%ecx 1362ebfedea0SLionel Sambuc subl %eax,%ecx 1363ebfedea0SLionel Sambuc movl %ecx,(%ebx) 1364*0a6a1f1dSLionel Sambuc jnc .L038pw_nc0 1365ebfedea0SLionel Sambuc 1366ebfedea0SLionel Sambuc movl 4(%esi),%ecx 1367ebfedea0SLionel Sambuc subl %eax,%ecx 1368ebfedea0SLionel Sambuc movl %ecx,4(%ebx) 1369*0a6a1f1dSLionel Sambuc jnc .L039pw_nc1 1370ebfedea0SLionel Sambuc 1371ebfedea0SLionel Sambuc movl 8(%esi),%ecx 1372ebfedea0SLionel Sambuc subl %eax,%ecx 1373ebfedea0SLionel Sambuc movl %ecx,8(%ebx) 1374*0a6a1f1dSLionel Sambuc jnc .L040pw_nc2 1375ebfedea0SLionel Sambuc 1376ebfedea0SLionel Sambuc movl 12(%esi),%ecx 1377ebfedea0SLionel Sambuc subl %eax,%ecx 1378ebfedea0SLionel Sambuc movl %ecx,12(%ebx) 1379*0a6a1f1dSLionel Sambuc jnc .L041pw_nc3 1380ebfedea0SLionel Sambuc 1381ebfedea0SLionel Sambuc movl 16(%esi),%ecx 1382ebfedea0SLionel Sambuc subl %eax,%ecx 1383ebfedea0SLionel Sambuc movl %ecx,16(%ebx) 1384*0a6a1f1dSLionel Sambuc jnc .L042pw_nc4 1385ebfedea0SLionel Sambuc 1386ebfedea0SLionel Sambuc movl 20(%esi),%ecx 1387ebfedea0SLionel Sambuc subl %eax,%ecx 1388ebfedea0SLionel Sambuc movl %ecx,20(%ebx) 1389*0a6a1f1dSLionel Sambuc jnc .L043pw_nc5 1390ebfedea0SLionel Sambuc 1391ebfedea0SLionel Sambuc movl 24(%esi),%ecx 1392ebfedea0SLionel Sambuc subl %eax,%ecx 1393ebfedea0SLionel Sambuc movl %ecx,24(%ebx) 1394*0a6a1f1dSLionel Sambuc jnc .L044pw_nc6 1395ebfedea0SLionel Sambuc 1396ebfedea0SLionel Sambuc movl 28(%esi),%ecx 1397ebfedea0SLionel Sambuc subl %eax,%ecx 1398ebfedea0SLionel Sambuc movl %ecx,28(%ebx) 1399*0a6a1f1dSLionel Sambuc jnc .L045pw_nc7 1400ebfedea0SLionel Sambuc 1401ebfedea0SLionel Sambuc addl $32,%esi 1402ebfedea0SLionel Sambuc addl $32,%ebx 1403ebfedea0SLionel Sambuc subl $8,%ebp 1404*0a6a1f1dSLionel Sambuc jnz .L037pw_pos_loop 1405*0a6a1f1dSLionel Sambuc.L036pw_pos_finish: 1406ebfedea0SLionel Sambuc movl 36(%esp),%ebp 1407ebfedea0SLionel Sambuc andl $7,%ebp 1408*0a6a1f1dSLionel Sambuc jz .L032pw_end 1409ebfedea0SLionel Sambuc 1410ebfedea0SLionel Sambuc movl (%esi),%ecx 1411ebfedea0SLionel Sambuc subl %eax,%ecx 1412ebfedea0SLionel Sambuc movl %ecx,(%ebx) 1413*0a6a1f1dSLionel Sambuc jnc .L046pw_tail_nc0 1414ebfedea0SLionel Sambuc decl %ebp 1415*0a6a1f1dSLionel Sambuc jz .L032pw_end 1416ebfedea0SLionel Sambuc 1417ebfedea0SLionel Sambuc movl 4(%esi),%ecx 1418ebfedea0SLionel Sambuc subl %eax,%ecx 1419ebfedea0SLionel Sambuc movl %ecx,4(%ebx) 1420*0a6a1f1dSLionel Sambuc jnc .L047pw_tail_nc1 1421ebfedea0SLionel Sambuc decl %ebp 1422*0a6a1f1dSLionel Sambuc jz .L032pw_end 1423ebfedea0SLionel Sambuc 1424ebfedea0SLionel Sambuc movl 8(%esi),%ecx 1425ebfedea0SLionel Sambuc subl %eax,%ecx 1426ebfedea0SLionel Sambuc movl %ecx,8(%ebx) 1427*0a6a1f1dSLionel Sambuc jnc .L048pw_tail_nc2 1428ebfedea0SLionel Sambuc decl %ebp 1429*0a6a1f1dSLionel Sambuc jz .L032pw_end 1430ebfedea0SLionel Sambuc 1431ebfedea0SLionel Sambuc movl 12(%esi),%ecx 1432ebfedea0SLionel Sambuc subl %eax,%ecx 1433ebfedea0SLionel Sambuc movl %ecx,12(%ebx) 1434*0a6a1f1dSLionel Sambuc jnc .L049pw_tail_nc3 1435ebfedea0SLionel Sambuc decl %ebp 1436*0a6a1f1dSLionel Sambuc jz .L032pw_end 1437ebfedea0SLionel Sambuc 1438ebfedea0SLionel Sambuc movl 16(%esi),%ecx 1439ebfedea0SLionel Sambuc subl %eax,%ecx 1440ebfedea0SLionel Sambuc movl %ecx,16(%ebx) 1441*0a6a1f1dSLionel Sambuc jnc .L050pw_tail_nc4 1442ebfedea0SLionel Sambuc decl %ebp 1443*0a6a1f1dSLionel Sambuc jz .L032pw_end 1444ebfedea0SLionel Sambuc 1445ebfedea0SLionel Sambuc movl 20(%esi),%ecx 1446ebfedea0SLionel Sambuc subl %eax,%ecx 1447ebfedea0SLionel Sambuc movl %ecx,20(%ebx) 1448*0a6a1f1dSLionel Sambuc jnc .L051pw_tail_nc5 1449ebfedea0SLionel Sambuc decl %ebp 1450*0a6a1f1dSLionel Sambuc jz .L032pw_end 1451ebfedea0SLionel Sambuc 1452ebfedea0SLionel Sambuc movl 24(%esi),%ecx 1453ebfedea0SLionel Sambuc subl %eax,%ecx 1454ebfedea0SLionel Sambuc movl %ecx,24(%ebx) 1455*0a6a1f1dSLionel Sambuc jnc .L052pw_tail_nc6 1456ebfedea0SLionel Sambuc movl $1,%eax 1457*0a6a1f1dSLionel Sambuc jmp .L032pw_end 1458*0a6a1f1dSLionel Sambuc.L053pw_nc_loop: 1459ebfedea0SLionel Sambuc movl (%esi),%ecx 1460ebfedea0SLionel Sambuc movl %ecx,(%ebx) 1461*0a6a1f1dSLionel Sambuc.L038pw_nc0: 1462ebfedea0SLionel Sambuc movl 4(%esi),%ecx 1463ebfedea0SLionel Sambuc movl %ecx,4(%ebx) 1464*0a6a1f1dSLionel Sambuc.L039pw_nc1: 1465ebfedea0SLionel Sambuc movl 8(%esi),%ecx 1466ebfedea0SLionel Sambuc movl %ecx,8(%ebx) 1467*0a6a1f1dSLionel Sambuc.L040pw_nc2: 1468ebfedea0SLionel Sambuc movl 12(%esi),%ecx 1469ebfedea0SLionel Sambuc movl %ecx,12(%ebx) 1470*0a6a1f1dSLionel Sambuc.L041pw_nc3: 1471ebfedea0SLionel Sambuc movl 16(%esi),%ecx 1472ebfedea0SLionel Sambuc movl %ecx,16(%ebx) 1473*0a6a1f1dSLionel Sambuc.L042pw_nc4: 1474ebfedea0SLionel Sambuc movl 20(%esi),%ecx 1475ebfedea0SLionel Sambuc movl %ecx,20(%ebx) 1476*0a6a1f1dSLionel Sambuc.L043pw_nc5: 1477ebfedea0SLionel Sambuc movl 24(%esi),%ecx 1478ebfedea0SLionel Sambuc movl %ecx,24(%ebx) 1479*0a6a1f1dSLionel Sambuc.L044pw_nc6: 1480ebfedea0SLionel Sambuc movl 28(%esi),%ecx 1481ebfedea0SLionel Sambuc movl %ecx,28(%ebx) 1482*0a6a1f1dSLionel Sambuc.L045pw_nc7: 1483ebfedea0SLionel Sambuc 1484ebfedea0SLionel Sambuc addl $32,%esi 1485ebfedea0SLionel Sambuc addl $32,%ebx 1486ebfedea0SLionel Sambuc subl $8,%ebp 1487*0a6a1f1dSLionel Sambuc jnz .L053pw_nc_loop 1488ebfedea0SLionel Sambuc movl 36(%esp),%ebp 1489ebfedea0SLionel Sambuc andl $7,%ebp 1490*0a6a1f1dSLionel Sambuc jz .L054pw_nc_end 1491ebfedea0SLionel Sambuc movl (%esi),%ecx 1492ebfedea0SLionel Sambuc movl %ecx,(%ebx) 1493*0a6a1f1dSLionel Sambuc.L046pw_tail_nc0: 1494ebfedea0SLionel Sambuc decl %ebp 1495*0a6a1f1dSLionel Sambuc jz .L054pw_nc_end 1496ebfedea0SLionel Sambuc movl 4(%esi),%ecx 1497ebfedea0SLionel Sambuc movl %ecx,4(%ebx) 1498*0a6a1f1dSLionel Sambuc.L047pw_tail_nc1: 1499ebfedea0SLionel Sambuc decl %ebp 1500*0a6a1f1dSLionel Sambuc jz .L054pw_nc_end 1501ebfedea0SLionel Sambuc movl 8(%esi),%ecx 1502ebfedea0SLionel Sambuc movl %ecx,8(%ebx) 1503*0a6a1f1dSLionel Sambuc.L048pw_tail_nc2: 1504ebfedea0SLionel Sambuc decl %ebp 1505*0a6a1f1dSLionel Sambuc jz .L054pw_nc_end 1506ebfedea0SLionel Sambuc movl 12(%esi),%ecx 1507ebfedea0SLionel Sambuc movl %ecx,12(%ebx) 1508*0a6a1f1dSLionel Sambuc.L049pw_tail_nc3: 1509ebfedea0SLionel Sambuc decl %ebp 1510*0a6a1f1dSLionel Sambuc jz .L054pw_nc_end 1511ebfedea0SLionel Sambuc movl 16(%esi),%ecx 1512ebfedea0SLionel Sambuc movl %ecx,16(%ebx) 1513*0a6a1f1dSLionel Sambuc.L050pw_tail_nc4: 1514ebfedea0SLionel Sambuc decl %ebp 1515*0a6a1f1dSLionel Sambuc jz .L054pw_nc_end 1516ebfedea0SLionel Sambuc movl 20(%esi),%ecx 1517ebfedea0SLionel Sambuc movl %ecx,20(%ebx) 1518*0a6a1f1dSLionel Sambuc.L051pw_tail_nc5: 1519ebfedea0SLionel Sambuc decl %ebp 1520*0a6a1f1dSLionel Sambuc jz .L054pw_nc_end 1521ebfedea0SLionel Sambuc movl 24(%esi),%ecx 1522ebfedea0SLionel Sambuc movl %ecx,24(%ebx) 1523*0a6a1f1dSLionel Sambuc.L052pw_tail_nc6: 1524*0a6a1f1dSLionel Sambuc.L054pw_nc_end: 1525ebfedea0SLionel Sambuc movl $0,%eax 1526*0a6a1f1dSLionel Sambuc.L032pw_end: 1527ebfedea0SLionel Sambuc popl %edi 1528ebfedea0SLionel Sambuc popl %esi 1529ebfedea0SLionel Sambuc popl %ebx 1530ebfedea0SLionel Sambuc popl %ebp 1531ebfedea0SLionel Sambuc ret 1532ebfedea0SLionel Sambuc.size bn_sub_part_words,.-.L_bn_sub_part_words_begin 1533*0a6a1f1dSLionel Sambuc.comm OPENSSL_ia32cap_P,8,4 1534