1243789Sdim# $FreeBSD$ 2243789Sdim# Do not modify. This file is auto-generated from bn-586.pl. 3243789Sdim#ifdef PIC 4243789Sdim.file "bn-586.S" 5243789Sdim.text 6243789Sdim.globl bn_mul_add_words 7243789Sdim.type bn_mul_add_words,@function 8243789Sdim.align 16 9243789Sdimbn_mul_add_words: 10243789Sdim.L_bn_mul_add_words_begin: 11243789Sdim call .L000PIC_me_up 12243789Sdim.L000PIC_me_up: 13243789Sdim popl %eax 14243789Sdim leal _GLOBAL_OFFSET_TABLE_+[.-.L000PIC_me_up](%eax),%eax 15243789Sdim movl OPENSSL_ia32cap_P@GOT(%eax),%eax 16243789Sdim btl $26,(%eax) 17243789Sdim jnc .L001maw_non_sse2 18243789Sdim movl 4(%esp),%eax 19243789Sdim movl 8(%esp),%edx 20243789Sdim movl 12(%esp),%ecx 21243789Sdim movd 16(%esp),%mm0 22243789Sdim pxor %mm1,%mm1 23243789Sdim jmp .L002maw_sse2_entry 24243789Sdim.align 16 25243789Sdim.L003maw_sse2_unrolled: 26243789Sdim movd (%eax),%mm3 27263508Sdim paddq %mm3,%mm1 28263508Sdim movd (%edx),%mm2 29263508Sdim pmuludq %mm0,%mm2 30263508Sdim movd 4(%edx),%mm4 31263508Sdim pmuludq %mm0,%mm4 32243789Sdim movd 8(%edx),%mm6 33243789Sdim pmuludq %mm0,%mm6 34243789Sdim movd 12(%edx),%mm7 35243789Sdim pmuludq %mm0,%mm7 36243789Sdim paddq %mm2,%mm1 37243789Sdim movd 4(%eax),%mm3 38243789Sdim paddq %mm4,%mm3 39243789Sdim movd 8(%eax),%mm5 40243789Sdim paddq %mm6,%mm5 41243789Sdim movd 12(%eax),%mm4 42243789Sdim paddq %mm4,%mm7 43243789Sdim movd %mm1,(%eax) 44243789Sdim movd 16(%edx),%mm2 45243789Sdim pmuludq %mm0,%mm2 46243789Sdim psrlq $32,%mm1 47243789Sdim movd 20(%edx),%mm4 48243789Sdim pmuludq %mm0,%mm4 49243789Sdim paddq %mm3,%mm1 50243789Sdim movd 24(%edx),%mm6 51243789Sdim pmuludq %mm0,%mm6 52243789Sdim movd %mm1,4(%eax) 53243789Sdim psrlq $32,%mm1 54243789Sdim movd 28(%edx),%mm3 55243789Sdim addl $32,%edx 56243789Sdim pmuludq %mm0,%mm3 57243789Sdim paddq %mm5,%mm1 58243789Sdim movd 16(%eax),%mm5 59243789Sdim paddq %mm5,%mm2 60243789Sdim movd %mm1,8(%eax) 61243789Sdim psrlq $32,%mm1 62249423Sdim paddq %mm7,%mm1 63249423Sdim movd 20(%eax),%mm5 64263508Sdim paddq %mm5,%mm4 65243789Sdim movd %mm1,12(%eax) 66243789Sdim psrlq $32,%mm1 67243789Sdim paddq %mm2,%mm1 68243789Sdim movd 24(%eax),%mm5 69243789Sdim paddq %mm5,%mm6 70243789Sdim movd %mm1,16(%eax) 71243789Sdim psrlq $32,%mm1 72243789Sdim paddq %mm4,%mm1 73243789Sdim movd 28(%eax),%mm5 74243789Sdim paddq %mm5,%mm3 75243789Sdim movd %mm1,20(%eax) 76243789Sdim psrlq $32,%mm1 77243789Sdim paddq %mm6,%mm1 78243789Sdim movd %mm1,24(%eax) 79243789Sdim psrlq $32,%mm1 80243789Sdim paddq %mm3,%mm1 81243789Sdim movd %mm1,28(%eax) 82243789Sdim leal 32(%eax),%eax 83243789Sdim psrlq $32,%mm1 84243789Sdim subl $8,%ecx 85243789Sdim jz .L004maw_sse2_exit 86243789Sdim.L002maw_sse2_entry: 87243789Sdim testl $4294967288,%ecx 88243789Sdim jnz .L003maw_sse2_unrolled 89243789Sdim.align 4 90243789Sdim.L005maw_sse2_loop: 91243789Sdim movd (%edx),%mm2 92243789Sdim movd (%eax),%mm3 93243789Sdim pmuludq %mm0,%mm2 94243789Sdim leal 4(%edx),%edx 95243789Sdim paddq %mm3,%mm1 96243789Sdim paddq %mm2,%mm1 97243789Sdim movd %mm1,(%eax) 98243789Sdim subl $1,%ecx 99243789Sdim psrlq $32,%mm1 100243789Sdim leal 4(%eax),%eax 101243789Sdim jnz .L005maw_sse2_loop 102243789Sdim.L004maw_sse2_exit: 103243789Sdim movd %mm1,%eax 104243789Sdim emms 105243789Sdim ret 106243789Sdim.align 16 107243789Sdim.L001maw_non_sse2: 108263508Sdim pushl %ebp 109263508Sdim pushl %ebx 110263508Sdim pushl %esi 111263508Sdim pushl %edi 112243789Sdim 113243789Sdim xorl %esi,%esi 114243789Sdim movl 20(%esp),%edi 115243789Sdim movl 28(%esp),%ecx 116243789Sdim movl 24(%esp),%ebx 117243789Sdim andl $4294967288,%ecx 118243789Sdim movl 32(%esp),%ebp 119243789Sdim pushl %ecx 120243789Sdim jz .L006maw_finish 121243789Sdim.align 16 122243789Sdim.L007maw_loop: 123243789Sdim 124243789Sdim movl (%ebx),%eax 125243789Sdim mull %ebp 126243789Sdim addl %esi,%eax 127243789Sdim adcl $0,%edx 128243789Sdim addl (%edi),%eax 129243789Sdim adcl $0,%edx 130243789Sdim movl %eax,(%edi) 131243789Sdim movl %edx,%esi 132243789Sdim 133243789Sdim movl 4(%ebx),%eax 134243789Sdim mull %ebp 135243789Sdim addl %esi,%eax 136243789Sdim adcl $0,%edx 137243789Sdim addl 4(%edi),%eax 138243789Sdim adcl $0,%edx 139243789Sdim movl %eax,4(%edi) 140243789Sdim movl %edx,%esi 141243789Sdim 142243789Sdim movl 8(%ebx),%eax 143243789Sdim mull %ebp 144243789Sdim addl %esi,%eax 145243789Sdim adcl $0,%edx 146243789Sdim addl 8(%edi),%eax 147243789Sdim adcl $0,%edx 148243789Sdim movl %eax,8(%edi) 149243789Sdim movl %edx,%esi 150243789Sdim 151243789Sdim movl 12(%ebx),%eax 152243789Sdim mull %ebp 153249423Sdim addl %esi,%eax 154249423Sdim adcl $0,%edx 155243789Sdim addl 12(%edi),%eax 156243789Sdim adcl $0,%edx 157243789Sdim movl %eax,12(%edi) 158243789Sdim movl %edx,%esi 159243789Sdim 160243789Sdim movl 16(%ebx),%eax 161249423Sdim mull %ebp 162243789Sdim addl %esi,%eax 163243789Sdim adcl $0,%edx 164249423Sdim addl 16(%edi),%eax 165243789Sdim adcl $0,%edx 166249423Sdim movl %eax,16(%edi) 167243789Sdim movl %edx,%esi 168243789Sdim 169243789Sdim movl 20(%ebx),%eax 170243789Sdim mull %ebp 171243789Sdim addl %esi,%eax 172243789Sdim adcl $0,%edx 173243789Sdim addl 20(%edi),%eax 174243789Sdim adcl $0,%edx 175243789Sdim movl %eax,20(%edi) 176243789Sdim movl %edx,%esi 177243789Sdim 178243789Sdim movl 24(%ebx),%eax 179243789Sdim mull %ebp 180243789Sdim addl %esi,%eax 181243789Sdim adcl $0,%edx 182243789Sdim addl 24(%edi),%eax 183243789Sdim adcl $0,%edx 184243789Sdim movl %eax,24(%edi) 185243789Sdim movl %edx,%esi 186243789Sdim 187243789Sdim movl 28(%ebx),%eax 188243789Sdim mull %ebp 189243789Sdim addl %esi,%eax 190243789Sdim adcl $0,%edx 191243789Sdim addl 28(%edi),%eax 192243789Sdim adcl $0,%edx 193243789Sdim movl %eax,28(%edi) 194243789Sdim movl %edx,%esi 195243789Sdim 196243789Sdim subl $8,%ecx 197243789Sdim leal 32(%ebx),%ebx 198243789Sdim leal 32(%edi),%edi 199243789Sdim jnz .L007maw_loop 200243789Sdim.L006maw_finish: 201243789Sdim movl 32(%esp),%ecx 202243789Sdim andl $7,%ecx 203243789Sdim jnz .L008maw_finish2 204243789Sdim jmp .L009maw_end 205243789Sdim.L008maw_finish2: 206243789Sdim 207243789Sdim movl (%ebx),%eax 208243789Sdim mull %ebp 209243789Sdim addl %esi,%eax 210243789Sdim adcl $0,%edx 211243789Sdim addl (%edi),%eax 212243789Sdim adcl $0,%edx 213243789Sdim decl %ecx 214243789Sdim movl %eax,(%edi) 215243789Sdim movl %edx,%esi 216243789Sdim jz .L009maw_end 217243789Sdim 218243789Sdim movl 4(%ebx),%eax 219243789Sdim mull %ebp 220243789Sdim addl %esi,%eax 221243789Sdim adcl $0,%edx 222243789Sdim addl 4(%edi),%eax 223243789Sdim adcl $0,%edx 224243789Sdim decl %ecx 225243789Sdim movl %eax,4(%edi) 226243789Sdim movl %edx,%esi 227243789Sdim jz .L009maw_end 228243789Sdim 229249423Sdim movl 8(%ebx),%eax 230249423Sdim mull %ebp 231243789Sdim addl %esi,%eax 232243789Sdim adcl $0,%edx 233243789Sdim addl 8(%edi),%eax 234243789Sdim adcl $0,%edx 235243789Sdim decl %ecx 236243789Sdim movl %eax,8(%edi) 237243789Sdim movl %edx,%esi 238243789Sdim jz .L009maw_end 239243789Sdim 240243789Sdim movl 12(%ebx),%eax 241243789Sdim mull %ebp 242243789Sdim addl %esi,%eax 243243789Sdim adcl $0,%edx 244243789Sdim addl 12(%edi),%eax 245243789Sdim adcl $0,%edx 246243789Sdim decl %ecx 247243789Sdim movl %eax,12(%edi) 248243789Sdim movl %edx,%esi 249243789Sdim jz .L009maw_end 250243789Sdim 251243789Sdim movl 16(%ebx),%eax 252243789Sdim mull %ebp 253243789Sdim addl %esi,%eax 254243789Sdim adcl $0,%edx 255243789Sdim addl 16(%edi),%eax 256243789Sdim adcl $0,%edx 257243789Sdim decl %ecx 258243789Sdim movl %eax,16(%edi) 259243789Sdim movl %edx,%esi 260243789Sdim jz .L009maw_end 261243789Sdim 262243789Sdim movl 20(%ebx),%eax 263243789Sdim mull %ebp 264243789Sdim addl %esi,%eax 265243789Sdim adcl $0,%edx 266243789Sdim addl 20(%edi),%eax 267243789Sdim adcl $0,%edx 268243789Sdim decl %ecx 269243789Sdim movl %eax,20(%edi) 270243789Sdim movl %edx,%esi 271243789Sdim jz .L009maw_end 272243789Sdim 273243789Sdim movl 24(%ebx),%eax 274243789Sdim mull %ebp 275243789Sdim addl %esi,%eax 276243789Sdim adcl $0,%edx 277243789Sdim addl 24(%edi),%eax 278243789Sdim adcl $0,%edx 279243789Sdim movl %eax,24(%edi) 280243789Sdim movl %edx,%esi 281243789Sdim.L009maw_end: 282243789Sdim movl %esi,%eax 283243789Sdim popl %ecx 284243789Sdim popl %edi 285243789Sdim popl %esi 286243789Sdim popl %ebx 287243789Sdim popl %ebp 288243789Sdim ret 289243789Sdim.size bn_mul_add_words,.-.L_bn_mul_add_words_begin 290243789Sdim.globl bn_mul_words 291243789Sdim.type bn_mul_words,@function 292243789Sdim.align 16 293243789Sdimbn_mul_words: 294243789Sdim.L_bn_mul_words_begin: 295243789Sdim call .L010PIC_me_up 296243789Sdim.L010PIC_me_up: 297243789Sdim popl %eax 298243789Sdim leal _GLOBAL_OFFSET_TABLE_+[.-.L010PIC_me_up](%eax),%eax 299243789Sdim movl OPENSSL_ia32cap_P@GOT(%eax),%eax 300243789Sdim btl $26,(%eax) 301243789Sdim jnc .L011mw_non_sse2 302243789Sdim movl 4(%esp),%eax 303243789Sdim movl 8(%esp),%edx 304243789Sdim movl 12(%esp),%ecx 305243789Sdim movd 16(%esp),%mm0 306243789Sdim pxor %mm1,%mm1 307243789Sdim.align 16 308243789Sdim.L012mw_sse2_loop: 309243789Sdim movd (%edx),%mm2 310243789Sdim pmuludq %mm0,%mm2 311243789Sdim leal 4(%edx),%edx 312243789Sdim paddq %mm2,%mm1 313243789Sdim movd %mm1,(%eax) 314243789Sdim subl $1,%ecx 315243789Sdim psrlq $32,%mm1 316243789Sdim leal 4(%eax),%eax 317243789Sdim jnz .L012mw_sse2_loop 318243789Sdim movd %mm1,%eax 319243789Sdim emms 320243789Sdim ret 321243789Sdim.align 16 322243789Sdim.L011mw_non_sse2: 323243789Sdim pushl %ebp 324243789Sdim pushl %ebx 325243789Sdim pushl %esi 326243789Sdim pushl %edi 327243789Sdim 328243789Sdim xorl %esi,%esi 329243789Sdim movl 20(%esp),%edi 330243789Sdim movl 24(%esp),%ebx 331243789Sdim movl 28(%esp),%ebp 332243789Sdim movl 32(%esp),%ecx 333243789Sdim andl $4294967288,%ebp 334243789Sdim jz .L013mw_finish 335243789Sdim.L014mw_loop: 336243789Sdim 337243789Sdim movl (%ebx),%eax 338243789Sdim mull %ecx 339243789Sdim addl %esi,%eax 340243789Sdim adcl $0,%edx 341243789Sdim movl %eax,(%edi) 342243789Sdim movl %edx,%esi 343243789Sdim 344243789Sdim movl 4(%ebx),%eax 345243789Sdim mull %ecx 346243789Sdim addl %esi,%eax 347243789Sdim adcl $0,%edx 348243789Sdim movl %eax,4(%edi) 349243789Sdim movl %edx,%esi 350243789Sdim 351243789Sdim movl 8(%ebx),%eax 352243789Sdim mull %ecx 353243789Sdim addl %esi,%eax 354243789Sdim adcl $0,%edx 355243789Sdim movl %eax,8(%edi) 356243789Sdim movl %edx,%esi 357243789Sdim 358243789Sdim movl 12(%ebx),%eax 359243789Sdim mull %ecx 360243789Sdim addl %esi,%eax 361243789Sdim adcl $0,%edx 362243789Sdim movl %eax,12(%edi) 363243789Sdim movl %edx,%esi 364243789Sdim 365243789Sdim movl 16(%ebx),%eax 366243789Sdim mull %ecx 367243789Sdim addl %esi,%eax 368243789Sdim adcl $0,%edx 369243789Sdim movl %eax,16(%edi) 370243789Sdim movl %edx,%esi 371243789Sdim 372243789Sdim movl 20(%ebx),%eax 373243789Sdim mull %ecx 374243789Sdim addl %esi,%eax 375243789Sdim adcl $0,%edx 376243789Sdim movl %eax,20(%edi) 377243789Sdim movl %edx,%esi 378243789Sdim 379243789Sdim movl 24(%ebx),%eax 380243789Sdim mull %ecx 381243789Sdim addl %esi,%eax 382243789Sdim adcl $0,%edx 383243789Sdim movl %eax,24(%edi) 384243789Sdim movl %edx,%esi 385243789Sdim 386243789Sdim movl 28(%ebx),%eax 387243789Sdim mull %ecx 388243789Sdim addl %esi,%eax 389243789Sdim adcl $0,%edx 390243789Sdim movl %eax,28(%edi) 391243789Sdim movl %edx,%esi 392243789Sdim 393243789Sdim addl $32,%ebx 394243789Sdim addl $32,%edi 395243789Sdim subl $8,%ebp 396243789Sdim jz .L013mw_finish 397243789Sdim jmp .L014mw_loop 398243789Sdim.L013mw_finish: 399243789Sdim movl 28(%esp),%ebp 400243789Sdim andl $7,%ebp 401243789Sdim jnz .L015mw_finish2 402243789Sdim jmp .L016mw_end 403243789Sdim.L015mw_finish2: 404243789Sdim 405243789Sdim movl (%ebx),%eax 406243789Sdim mull %ecx 407243789Sdim addl %esi,%eax 408243789Sdim adcl $0,%edx 409243789Sdim movl %eax,(%edi) 410243789Sdim movl %edx,%esi 411243789Sdim decl %ebp 412243789Sdim jz .L016mw_end 413243789Sdim 414243789Sdim movl 4(%ebx),%eax 415243789Sdim mull %ecx 416243789Sdim addl %esi,%eax 417243789Sdim adcl $0,%edx 418243789Sdim movl %eax,4(%edi) 419243789Sdim movl %edx,%esi 420243789Sdim decl %ebp 421243789Sdim jz .L016mw_end 422243789Sdim 423243789Sdim movl 8(%ebx),%eax 424243789Sdim mull %ecx 425243789Sdim addl %esi,%eax 426243789Sdim adcl $0,%edx 427243789Sdim movl %eax,8(%edi) 428243789Sdim movl %edx,%esi 429243789Sdim decl %ebp 430243789Sdim jz .L016mw_end 431243789Sdim 432243789Sdim movl 12(%ebx),%eax 433243789Sdim mull %ecx 434243789Sdim addl %esi,%eax 435243789Sdim adcl $0,%edx 436243789Sdim movl %eax,12(%edi) 437243789Sdim movl %edx,%esi 438243789Sdim decl %ebp 439243789Sdim jz .L016mw_end 440243789Sdim 441243789Sdim movl 16(%ebx),%eax 442243789Sdim mull %ecx 443243789Sdim addl %esi,%eax 444243789Sdim adcl $0,%edx 445243789Sdim movl %eax,16(%edi) 446243789Sdim movl %edx,%esi 447243789Sdim decl %ebp 448243789Sdim jz .L016mw_end 449243789Sdim 450243789Sdim movl 20(%ebx),%eax 451243789Sdim mull %ecx 452243789Sdim addl %esi,%eax 453243789Sdim adcl $0,%edx 454243789Sdim movl %eax,20(%edi) 455243789Sdim movl %edx,%esi 456243789Sdim decl %ebp 457243789Sdim jz .L016mw_end 458243789Sdim 459243789Sdim movl 24(%ebx),%eax 460243789Sdim mull %ecx 461243789Sdim addl %esi,%eax 462243789Sdim adcl $0,%edx 463243789Sdim movl %eax,24(%edi) 464243789Sdim movl %edx,%esi 465243789Sdim.L016mw_end: 466243789Sdim movl %esi,%eax 467243789Sdim popl %edi 468243789Sdim popl %esi 469243789Sdim popl %ebx 470243789Sdim popl %ebp 471243789Sdim ret 472243789Sdim.size bn_mul_words,.-.L_bn_mul_words_begin 473243789Sdim.globl bn_sqr_words 474243789Sdim.type bn_sqr_words,@function 475243789Sdim.align 16 476243789Sdimbn_sqr_words: 477243789Sdim.L_bn_sqr_words_begin: 478243789Sdim call .L017PIC_me_up 479243789Sdim.L017PIC_me_up: 480243789Sdim popl %eax 481243789Sdim leal _GLOBAL_OFFSET_TABLE_+[.-.L017PIC_me_up](%eax),%eax 482243789Sdim movl OPENSSL_ia32cap_P@GOT(%eax),%eax 483243789Sdim btl $26,(%eax) 484243789Sdim jnc .L018sqr_non_sse2 485243789Sdim movl 4(%esp),%eax 486243789Sdim movl 8(%esp),%edx 487243789Sdim movl 12(%esp),%ecx 488243789Sdim.align 16 489243789Sdim.L019sqr_sse2_loop: 490243789Sdim movd (%edx),%mm0 491243789Sdim pmuludq %mm0,%mm0 492243789Sdim leal 4(%edx),%edx 493243789Sdim movq %mm0,(%eax) 494243789Sdim subl $1,%ecx 495243789Sdim leal 8(%eax),%eax 496243789Sdim jnz .L019sqr_sse2_loop 497243789Sdim emms 498243789Sdim ret 499243789Sdim.align 16 500243789Sdim.L018sqr_non_sse2: 501243789Sdim pushl %ebp 502243789Sdim pushl %ebx 503243789Sdim pushl %esi 504243789Sdim pushl %edi 505243789Sdim 506243789Sdim movl 20(%esp),%esi 507243789Sdim movl 24(%esp),%edi 508243789Sdim movl 28(%esp),%ebx 509243789Sdim andl $4294967288,%ebx 510243789Sdim jz .L020sw_finish 511243789Sdim.L021sw_loop: 512243789Sdim 513243789Sdim movl (%edi),%eax 514243789Sdim mull %eax 515243789Sdim movl %eax,(%esi) 516263508Sdim movl %edx,4(%esi) 517243789Sdim 518243789Sdim movl 4(%edi),%eax 519243789Sdim mull %eax 520243789Sdim movl %eax,8(%esi) 521243789Sdim movl %edx,12(%esi) 522243789Sdim 523243789Sdim movl 8(%edi),%eax 524243789Sdim mull %eax 525243789Sdim movl %eax,16(%esi) 526243789Sdim movl %edx,20(%esi) 527243789Sdim 528243789Sdim movl 12(%edi),%eax 529243789Sdim mull %eax 530243789Sdim movl %eax,24(%esi) 531243789Sdim movl %edx,28(%esi) 532243789Sdim 533243789Sdim movl 16(%edi),%eax 534243789Sdim mull %eax 535243789Sdim movl %eax,32(%esi) 536243789Sdim movl %edx,36(%esi) 537243789Sdim 538243789Sdim movl 20(%edi),%eax 539243789Sdim mull %eax 540243789Sdim movl %eax,40(%esi) 541243789Sdim movl %edx,44(%esi) 542243789Sdim 543243789Sdim movl 24(%edi),%eax 544243789Sdim mull %eax 545243789Sdim movl %eax,48(%esi) 546243789Sdim movl %edx,52(%esi) 547243789Sdim 548243789Sdim movl 28(%edi),%eax 549243789Sdim mull %eax 550243789Sdim movl %eax,56(%esi) 551243789Sdim movl %edx,60(%esi) 552243789Sdim 553243789Sdim addl $32,%edi 554243789Sdim addl $64,%esi 555243789Sdim subl $8,%ebx 556243789Sdim jnz .L021sw_loop 557243789Sdim.L020sw_finish: 558243789Sdim movl 28(%esp),%ebx 559243789Sdim andl $7,%ebx 560243789Sdim jz .L022sw_end 561243789Sdim 562243789Sdim movl (%edi),%eax 563243789Sdim mull %eax 564243789Sdim movl %eax,(%esi) 565243789Sdim decl %ebx 566243789Sdim movl %edx,4(%esi) 567243789Sdim jz .L022sw_end 568243789Sdim 569243789Sdim movl 4(%edi),%eax 570243789Sdim mull %eax 571243789Sdim movl %eax,8(%esi) 572243789Sdim decl %ebx 573243789Sdim movl %edx,12(%esi) 574243789Sdim jz .L022sw_end 575243789Sdim 576243789Sdim movl 8(%edi),%eax 577243789Sdim mull %eax 578243789Sdim movl %eax,16(%esi) 579243789Sdim decl %ebx 580243789Sdim movl %edx,20(%esi) 581243789Sdim jz .L022sw_end 582243789Sdim 583243789Sdim movl 12(%edi),%eax 584243789Sdim mull %eax 585243789Sdim movl %eax,24(%esi) 586243789Sdim decl %ebx 587243789Sdim movl %edx,28(%esi) 588243789Sdim jz .L022sw_end 589243789Sdim 590243789Sdim movl 16(%edi),%eax 591249423Sdim mull %eax 592249423Sdim movl %eax,32(%esi) 593249423Sdim decl %ebx 594249423Sdim movl %edx,36(%esi) 595249423Sdim jz .L022sw_end 596249423Sdim 597249423Sdim movl 20(%edi),%eax 598249423Sdim mull %eax 599249423Sdim movl %eax,40(%esi) 600249423Sdim decl %ebx 601249423Sdim movl %edx,44(%esi) 602249423Sdim jz .L022sw_end 603249423Sdim 604249423Sdim movl 24(%edi),%eax 605249423Sdim mull %eax 606243789Sdim movl %eax,48(%esi) 607249423Sdim movl %edx,52(%esi) 608249423Sdim.L022sw_end: 609249423Sdim popl %edi 610249423Sdim popl %esi 611249423Sdim popl %ebx 612249423Sdim popl %ebp 613243789Sdim ret 614243789Sdim.size bn_sqr_words,.-.L_bn_sqr_words_begin 615249423Sdim.globl bn_div_words 616249423Sdim.type bn_div_words,@function 617249423Sdim.align 16 618249423Sdimbn_div_words: 619243789Sdim.L_bn_div_words_begin: 620249423Sdim movl 4(%esp),%edx 621249423Sdim movl 8(%esp),%eax 622249423Sdim movl 12(%esp),%ecx 623249423Sdim divl %ecx 624249423Sdim ret 625243789Sdim.size bn_div_words,.-.L_bn_div_words_begin 626243789Sdim.globl bn_add_words 627243789Sdim.type bn_add_words,@function 628243789Sdim.align 16 629243789Sdimbn_add_words: 630243789Sdim.L_bn_add_words_begin: 631243789Sdim pushl %ebp 632243789Sdim pushl %ebx 633243789Sdim pushl %esi 634243789Sdim pushl %edi 635243789Sdim 636243789Sdim movl 20(%esp),%ebx 637243789Sdim movl 24(%esp),%esi 638243789Sdim movl 28(%esp),%edi 639243789Sdim movl 32(%esp),%ebp 640243789Sdim xorl %eax,%eax 641243789Sdim andl $4294967288,%ebp 642243789Sdim jz .L023aw_finish 643243789Sdim.L024aw_loop: 644243789Sdim 645243789Sdim movl (%esi),%ecx 646243789Sdim movl (%edi),%edx 647243789Sdim addl %eax,%ecx 648243789Sdim movl $0,%eax 649243789Sdim adcl %eax,%eax 650243789Sdim addl %edx,%ecx 651243789Sdim adcl $0,%eax 652243789Sdim movl %ecx,(%ebx) 653243789Sdim 654243789Sdim movl 4(%esi),%ecx 655249423Sdim movl 4(%edi),%edx 656249423Sdim addl %eax,%ecx 657243789Sdim movl $0,%eax 658249423Sdim adcl %eax,%eax 659243789Sdim addl %edx,%ecx 660243789Sdim adcl $0,%eax 661243789Sdim movl %ecx,4(%ebx) 662243789Sdim 663243789Sdim movl 8(%esi),%ecx 664243789Sdim movl 8(%edi),%edx 665243789Sdim addl %eax,%ecx 666243789Sdim movl $0,%eax 667243789Sdim adcl %eax,%eax 668243789Sdim addl %edx,%ecx 669243789Sdim adcl $0,%eax 670243789Sdim movl %ecx,8(%ebx) 671243789Sdim 672243789Sdim movl 12(%esi),%ecx 673243789Sdim movl 12(%edi),%edx 674243789Sdim addl %eax,%ecx 675243789Sdim movl $0,%eax 676243789Sdim adcl %eax,%eax 677243789Sdim addl %edx,%ecx 678243789Sdim adcl $0,%eax 679243789Sdim movl %ecx,12(%ebx) 680243789Sdim 681243789Sdim movl 16(%esi),%ecx 682243789Sdim movl 16(%edi),%edx 683243789Sdim addl %eax,%ecx 684243789Sdim movl $0,%eax 685243789Sdim adcl %eax,%eax 686243789Sdim addl %edx,%ecx 687243789Sdim adcl $0,%eax 688243789Sdim movl %ecx,16(%ebx) 689243789Sdim 690243789Sdim movl 20(%esi),%ecx 691243789Sdim movl 20(%edi),%edx 692243789Sdim addl %eax,%ecx 693243789Sdim movl $0,%eax 694243789Sdim adcl %eax,%eax 695243789Sdim addl %edx,%ecx 696243789Sdim adcl $0,%eax 697243789Sdim movl %ecx,20(%ebx) 698243789Sdim 699243789Sdim movl 24(%esi),%ecx 700243789Sdim movl 24(%edi),%edx 701243789Sdim addl %eax,%ecx 702243789Sdim movl $0,%eax 703243789Sdim adcl %eax,%eax 704243789Sdim addl %edx,%ecx 705243789Sdim adcl $0,%eax 706243789Sdim movl %ecx,24(%ebx) 707243789Sdim 708243789Sdim movl 28(%esi),%ecx 709243789Sdim movl 28(%edi),%edx 710243789Sdim addl %eax,%ecx 711243789Sdim movl $0,%eax 712243789Sdim adcl %eax,%eax 713243789Sdim addl %edx,%ecx 714243789Sdim adcl $0,%eax 715243789Sdim movl %ecx,28(%ebx) 716243789Sdim 717243789Sdim addl $32,%esi 718243789Sdim addl $32,%edi 719243789Sdim addl $32,%ebx 720243789Sdim subl $8,%ebp 721243789Sdim jnz .L024aw_loop 722243789Sdim.L023aw_finish: 723243789Sdim movl 32(%esp),%ebp 724243789Sdim andl $7,%ebp 725243789Sdim jz .L025aw_end 726243789Sdim 727243789Sdim movl (%esi),%ecx 728243789Sdim movl (%edi),%edx 729243789Sdim addl %eax,%ecx 730243789Sdim movl $0,%eax 731243789Sdim adcl %eax,%eax 732243789Sdim addl %edx,%ecx 733243789Sdim adcl $0,%eax 734243789Sdim decl %ebp 735243789Sdim movl %ecx,(%ebx) 736243789Sdim jz .L025aw_end 737243789Sdim 738243789Sdim movl 4(%esi),%ecx 739243789Sdim movl 4(%edi),%edx 740243789Sdim addl %eax,%ecx 741243789Sdim movl $0,%eax 742243789Sdim adcl %eax,%eax 743243789Sdim addl %edx,%ecx 744243789Sdim adcl $0,%eax 745243789Sdim decl %ebp 746243789Sdim movl %ecx,4(%ebx) 747243789Sdim jz .L025aw_end 748243789Sdim 749243789Sdim movl 8(%esi),%ecx 750243789Sdim movl 8(%edi),%edx 751243789Sdim addl %eax,%ecx 752243789Sdim movl $0,%eax 753243789Sdim adcl %eax,%eax 754243789Sdim addl %edx,%ecx 755243789Sdim adcl $0,%eax 756243789Sdim decl %ebp 757243789Sdim movl %ecx,8(%ebx) 758243789Sdim jz .L025aw_end 759243789Sdim 760243789Sdim movl 12(%esi),%ecx 761243789Sdim movl 12(%edi),%edx 762243789Sdim addl %eax,%ecx 763243789Sdim movl $0,%eax 764243789Sdim adcl %eax,%eax 765243789Sdim addl %edx,%ecx 766243789Sdim adcl $0,%eax 767243789Sdim decl %ebp 768243789Sdim movl %ecx,12(%ebx) 769243789Sdim jz .L025aw_end 770243789Sdim 771243789Sdim movl 16(%esi),%ecx 772243789Sdim movl 16(%edi),%edx 773243789Sdim addl %eax,%ecx 774243789Sdim movl $0,%eax 775243789Sdim adcl %eax,%eax 776243789Sdim addl %edx,%ecx 777243789Sdim adcl $0,%eax 778243789Sdim decl %ebp 779243789Sdim movl %ecx,16(%ebx) 780243789Sdim jz .L025aw_end 781243789Sdim 782243789Sdim movl 20(%esi),%ecx 783243789Sdim movl 20(%edi),%edx 784243789Sdim addl %eax,%ecx 785243789Sdim movl $0,%eax 786243789Sdim adcl %eax,%eax 787243789Sdim addl %edx,%ecx 788243789Sdim adcl $0,%eax 789243789Sdim decl %ebp 790243789Sdim movl %ecx,20(%ebx) 791243789Sdim jz .L025aw_end 792243789Sdim 793243789Sdim movl 24(%esi),%ecx 794243789Sdim movl 24(%edi),%edx 795243789Sdim addl %eax,%ecx 796243789Sdim movl $0,%eax 797243789Sdim adcl %eax,%eax 798243789Sdim addl %edx,%ecx 799243789Sdim adcl $0,%eax 800243789Sdim movl %ecx,24(%ebx) 801243789Sdim.L025aw_end: 802243789Sdim popl %edi 803243789Sdim popl %esi 804243789Sdim popl %ebx 805243789Sdim popl %ebp 806243789Sdim ret 807243789Sdim.size bn_add_words,.-.L_bn_add_words_begin 808243789Sdim.globl bn_sub_words 809243789Sdim.type bn_sub_words,@function 810243789Sdim.align 16 811243789Sdimbn_sub_words: 812243789Sdim.L_bn_sub_words_begin: 813243789Sdim pushl %ebp 814243789Sdim pushl %ebx 815243789Sdim pushl %esi 816243789Sdim pushl %edi 817243789Sdim 818243789Sdim movl 20(%esp),%ebx 819243789Sdim movl 24(%esp),%esi 820243789Sdim movl 28(%esp),%edi 821243789Sdim movl 32(%esp),%ebp 822243789Sdim xorl %eax,%eax 823243789Sdim andl $4294967288,%ebp 824243789Sdim jz .L026aw_finish 825243789Sdim.L027aw_loop: 826243789Sdim 827243789Sdim movl (%esi),%ecx 828243789Sdim movl (%edi),%edx 829243789Sdim subl %eax,%ecx 830243789Sdim movl $0,%eax 831243789Sdim adcl %eax,%eax 832243789Sdim subl %edx,%ecx 833243789Sdim adcl $0,%eax 834243789Sdim movl %ecx,(%ebx) 835243789Sdim 836243789Sdim movl 4(%esi),%ecx 837243789Sdim movl 4(%edi),%edx 838243789Sdim subl %eax,%ecx 839243789Sdim movl $0,%eax 840243789Sdim adcl %eax,%eax 841243789Sdim subl %edx,%ecx 842243789Sdim adcl $0,%eax 843243789Sdim movl %ecx,4(%ebx) 844243789Sdim 845243789Sdim movl 8(%esi),%ecx 846243789Sdim movl 8(%edi),%edx 847243789Sdim subl %eax,%ecx 848243789Sdim movl $0,%eax 849243789Sdim adcl %eax,%eax 850243789Sdim subl %edx,%ecx 851243789Sdim adcl $0,%eax 852243789Sdim movl %ecx,8(%ebx) 853243789Sdim 854243789Sdim movl 12(%esi),%ecx 855243789Sdim movl 12(%edi),%edx 856243789Sdim subl %eax,%ecx 857243789Sdim movl $0,%eax 858243789Sdim adcl %eax,%eax 859243789Sdim subl %edx,%ecx 860243789Sdim adcl $0,%eax 861243789Sdim movl %ecx,12(%ebx) 862243789Sdim 863243789Sdim movl 16(%esi),%ecx 864243789Sdim movl 16(%edi),%edx 865243789Sdim subl %eax,%ecx 866243789Sdim movl $0,%eax 867243789Sdim adcl %eax,%eax 868243789Sdim subl %edx,%ecx 869243789Sdim adcl $0,%eax 870243789Sdim movl %ecx,16(%ebx) 871243789Sdim 872243789Sdim movl 20(%esi),%ecx 873243789Sdim movl 20(%edi),%edx 874243789Sdim subl %eax,%ecx 875243789Sdim movl $0,%eax 876243789Sdim adcl %eax,%eax 877243789Sdim subl %edx,%ecx 878243789Sdim adcl $0,%eax 879243789Sdim movl %ecx,20(%ebx) 880243789Sdim 881243789Sdim movl 24(%esi),%ecx 882243789Sdim movl 24(%edi),%edx 883243789Sdim subl %eax,%ecx 884243789Sdim movl $0,%eax 885243789Sdim adcl %eax,%eax 886243789Sdim subl %edx,%ecx 887243789Sdim adcl $0,%eax 888243789Sdim movl %ecx,24(%ebx) 889243789Sdim 890243789Sdim movl 28(%esi),%ecx 891243789Sdim movl 28(%edi),%edx 892243789Sdim subl %eax,%ecx 893243789Sdim movl $0,%eax 894243789Sdim adcl %eax,%eax 895243789Sdim subl %edx,%ecx 896243789Sdim adcl $0,%eax 897243789Sdim movl %ecx,28(%ebx) 898243789Sdim 899243789Sdim addl $32,%esi 900243789Sdim addl $32,%edi 901243789Sdim addl $32,%ebx 902243789Sdim subl $8,%ebp 903243789Sdim jnz .L027aw_loop 904243789Sdim.L026aw_finish: 905243789Sdim movl 32(%esp),%ebp 906243789Sdim andl $7,%ebp 907243789Sdim jz .L028aw_end 908243789Sdim 909243789Sdim movl (%esi),%ecx 910243789Sdim movl (%edi),%edx 911243789Sdim subl %eax,%ecx 912243789Sdim movl $0,%eax 913243789Sdim adcl %eax,%eax 914243789Sdim subl %edx,%ecx 915243789Sdim adcl $0,%eax 916243789Sdim decl %ebp 917243789Sdim movl %ecx,(%ebx) 918243789Sdim jz .L028aw_end 919243789Sdim 920243789Sdim movl 4(%esi),%ecx 921243789Sdim movl 4(%edi),%edx 922243789Sdim subl %eax,%ecx 923243789Sdim movl $0,%eax 924243789Sdim adcl %eax,%eax 925243789Sdim subl %edx,%ecx 926243789Sdim adcl $0,%eax 927243789Sdim decl %ebp 928243789Sdim movl %ecx,4(%ebx) 929243789Sdim jz .L028aw_end 930243789Sdim 931243789Sdim movl 8(%esi),%ecx 932243789Sdim movl 8(%edi),%edx 933243789Sdim subl %eax,%ecx 934243789Sdim movl $0,%eax 935243789Sdim adcl %eax,%eax 936243789Sdim subl %edx,%ecx 937243789Sdim adcl $0,%eax 938243789Sdim decl %ebp 939243789Sdim movl %ecx,8(%ebx) 940243789Sdim jz .L028aw_end 941243789Sdim 942243789Sdim movl 12(%esi),%ecx 943243789Sdim movl 12(%edi),%edx 944243789Sdim subl %eax,%ecx 945243789Sdim movl $0,%eax 946243789Sdim adcl %eax,%eax 947243789Sdim subl %edx,%ecx 948243789Sdim adcl $0,%eax 949243789Sdim decl %ebp 950243789Sdim movl %ecx,12(%ebx) 951243789Sdim jz .L028aw_end 952243789Sdim 953243789Sdim movl 16(%esi),%ecx 954243789Sdim movl 16(%edi),%edx 955243789Sdim subl %eax,%ecx 956243789Sdim movl $0,%eax 957243789Sdim adcl %eax,%eax 958243789Sdim subl %edx,%ecx 959243789Sdim adcl $0,%eax 960243789Sdim decl %ebp 961243789Sdim movl %ecx,16(%ebx) 962243789Sdim jz .L028aw_end 963243789Sdim 964243789Sdim movl 20(%esi),%ecx 965243789Sdim movl 20(%edi),%edx 966243789Sdim subl %eax,%ecx 967243789Sdim movl $0,%eax 968243789Sdim adcl %eax,%eax 969243789Sdim subl %edx,%ecx 970243789Sdim adcl $0,%eax 971243789Sdim decl %ebp 972243789Sdim movl %ecx,20(%ebx) 973243789Sdim jz .L028aw_end 974243789Sdim 975243789Sdim movl 24(%esi),%ecx 976243789Sdim movl 24(%edi),%edx 977243789Sdim subl %eax,%ecx 978243789Sdim movl $0,%eax 979243789Sdim adcl %eax,%eax 980243789Sdim subl %edx,%ecx 981243789Sdim adcl $0,%eax 982243789Sdim movl %ecx,24(%ebx) 983243789Sdim.L028aw_end: 984243789Sdim popl %edi 985243789Sdim popl %esi 986243789Sdim popl %ebx 987243789Sdim popl %ebp 988243789Sdim ret 989243789Sdim.size bn_sub_words,.-.L_bn_sub_words_begin 990243789Sdim.globl bn_sub_part_words 991243789Sdim.type bn_sub_part_words,@function 992243789Sdim.align 16 993243789Sdimbn_sub_part_words: 994243789Sdim.L_bn_sub_part_words_begin: 995243789Sdim pushl %ebp 996243789Sdim pushl %ebx 997243789Sdim pushl %esi 998243789Sdim pushl %edi 999243789Sdim 1000243789Sdim movl 20(%esp),%ebx 1001243789Sdim movl 24(%esp),%esi 1002243789Sdim movl 28(%esp),%edi 1003243789Sdim movl 32(%esp),%ebp 1004243789Sdim xorl %eax,%eax 1005243789Sdim andl $4294967288,%ebp 1006243789Sdim jz .L029aw_finish 1007243789Sdim.L030aw_loop: 1008243789Sdim 1009243789Sdim movl (%esi),%ecx 1010243789Sdim movl (%edi),%edx 1011243789Sdim subl %eax,%ecx 1012243789Sdim movl $0,%eax 1013243789Sdim adcl %eax,%eax 1014243789Sdim subl %edx,%ecx 1015243789Sdim adcl $0,%eax 1016243789Sdim movl %ecx,(%ebx) 1017243789Sdim 1018243789Sdim movl 4(%esi),%ecx 1019243789Sdim movl 4(%edi),%edx 1020243789Sdim subl %eax,%ecx 1021243789Sdim movl $0,%eax 1022243789Sdim adcl %eax,%eax 1023243789Sdim subl %edx,%ecx 1024243789Sdim adcl $0,%eax 1025243789Sdim movl %ecx,4(%ebx) 1026243789Sdim 1027243789Sdim movl 8(%esi),%ecx 1028243789Sdim movl 8(%edi),%edx 1029243789Sdim subl %eax,%ecx 1030243789Sdim movl $0,%eax 1031243789Sdim adcl %eax,%eax 1032243789Sdim subl %edx,%ecx 1033243789Sdim adcl $0,%eax 1034243789Sdim movl %ecx,8(%ebx) 1035243789Sdim 1036243789Sdim movl 12(%esi),%ecx 1037243789Sdim movl 12(%edi),%edx 1038243789Sdim subl %eax,%ecx 1039243789Sdim movl $0,%eax 1040243789Sdim adcl %eax,%eax 1041243789Sdim subl %edx,%ecx 1042243789Sdim adcl $0,%eax 1043243789Sdim movl %ecx,12(%ebx) 1044243789Sdim 1045243789Sdim movl 16(%esi),%ecx 1046243789Sdim movl 16(%edi),%edx 1047243789Sdim subl %eax,%ecx 1048243789Sdim movl $0,%eax 1049243789Sdim adcl %eax,%eax 1050243789Sdim subl %edx,%ecx 1051243789Sdim adcl $0,%eax 1052243789Sdim movl %ecx,16(%ebx) 1053243789Sdim 1054243789Sdim movl 20(%esi),%ecx 1055243789Sdim movl 20(%edi),%edx 1056243789Sdim subl %eax,%ecx 1057243789Sdim movl $0,%eax 1058243789Sdim adcl %eax,%eax 1059243789Sdim subl %edx,%ecx 1060243789Sdim adcl $0,%eax 1061243789Sdim movl %ecx,20(%ebx) 1062243789Sdim 1063243789Sdim movl 24(%esi),%ecx 1064243789Sdim movl 24(%edi),%edx 1065243789Sdim subl %eax,%ecx 1066243789Sdim movl $0,%eax 1067243789Sdim adcl %eax,%eax 1068243789Sdim subl %edx,%ecx 1069243789Sdim adcl $0,%eax 1070243789Sdim movl %ecx,24(%ebx) 1071243789Sdim 1072243789Sdim movl 28(%esi),%ecx 1073243789Sdim movl 28(%edi),%edx 1074243789Sdim subl %eax,%ecx 1075243789Sdim movl $0,%eax 1076243789Sdim adcl %eax,%eax 1077243789Sdim subl %edx,%ecx 1078243789Sdim adcl $0,%eax 1079243789Sdim movl %ecx,28(%ebx) 1080243789Sdim 1081243789Sdim addl $32,%esi 1082243789Sdim addl $32,%edi 1083243789Sdim addl $32,%ebx 1084243789Sdim subl $8,%ebp 1085243789Sdim jnz .L030aw_loop 1086243789Sdim.L029aw_finish: 1087243789Sdim movl 32(%esp),%ebp 1088243789Sdim andl $7,%ebp 1089243789Sdim jz .L031aw_end 1090243789Sdim 1091243789Sdim movl (%esi),%ecx 1092243789Sdim movl (%edi),%edx 1093243789Sdim subl %eax,%ecx 1094243789Sdim movl $0,%eax 1095243789Sdim adcl %eax,%eax 1096243789Sdim subl %edx,%ecx 1097243789Sdim adcl $0,%eax 1098243789Sdim movl %ecx,(%ebx) 1099243789Sdim addl $4,%esi 1100243789Sdim addl $4,%edi 1101243789Sdim addl $4,%ebx 1102243789Sdim decl %ebp 1103243789Sdim jz .L031aw_end 1104243789Sdim 1105243789Sdim movl (%esi),%ecx 1106243789Sdim movl (%edi),%edx 1107243789Sdim subl %eax,%ecx 1108243789Sdim movl $0,%eax 1109243789Sdim adcl %eax,%eax 1110243789Sdim subl %edx,%ecx 1111243789Sdim adcl $0,%eax 1112243789Sdim movl %ecx,(%ebx) 1113243789Sdim addl $4,%esi 1114243789Sdim addl $4,%edi 1115243789Sdim addl $4,%ebx 1116243789Sdim decl %ebp 1117243789Sdim jz .L031aw_end 1118243789Sdim 1119243789Sdim movl (%esi),%ecx 1120243789Sdim movl (%edi),%edx 1121243789Sdim subl %eax,%ecx 1122243789Sdim movl $0,%eax 1123243789Sdim adcl %eax,%eax 1124243789Sdim subl %edx,%ecx 1125243789Sdim adcl $0,%eax 1126243789Sdim movl %ecx,(%ebx) 1127243789Sdim addl $4,%esi 1128243789Sdim addl $4,%edi 1129243789Sdim addl $4,%ebx 1130243789Sdim decl %ebp 1131243789Sdim jz .L031aw_end 1132243789Sdim 1133243789Sdim movl (%esi),%ecx 1134243789Sdim movl (%edi),%edx 1135243789Sdim subl %eax,%ecx 1136243789Sdim movl $0,%eax 1137243789Sdim adcl %eax,%eax 1138243789Sdim subl %edx,%ecx 1139243789Sdim adcl $0,%eax 1140243789Sdim movl %ecx,(%ebx) 1141243789Sdim addl $4,%esi 1142243789Sdim addl $4,%edi 1143243789Sdim addl $4,%ebx 1144243789Sdim decl %ebp 1145243789Sdim jz .L031aw_end 1146243789Sdim 1147243789Sdim movl (%esi),%ecx 1148243789Sdim movl (%edi),%edx 1149243789Sdim subl %eax,%ecx 1150243789Sdim movl $0,%eax 1151243789Sdim adcl %eax,%eax 1152243789Sdim subl %edx,%ecx 1153243789Sdim adcl $0,%eax 1154243789Sdim movl %ecx,(%ebx) 1155243789Sdim addl $4,%esi 1156243789Sdim addl $4,%edi 1157243789Sdim addl $4,%ebx 1158243789Sdim decl %ebp 1159243789Sdim jz .L031aw_end 1160243789Sdim 1161243789Sdim movl (%esi),%ecx 1162243789Sdim movl (%edi),%edx 1163243789Sdim subl %eax,%ecx 1164243789Sdim movl $0,%eax 1165243789Sdim adcl %eax,%eax 1166243789Sdim subl %edx,%ecx 1167243789Sdim adcl $0,%eax 1168243789Sdim movl %ecx,(%ebx) 1169243789Sdim addl $4,%esi 1170243789Sdim addl $4,%edi 1171243789Sdim addl $4,%ebx 1172243789Sdim decl %ebp 1173243789Sdim jz .L031aw_end 1174243789Sdim 1175243789Sdim movl (%esi),%ecx 1176243789Sdim movl (%edi),%edx 1177243789Sdim subl %eax,%ecx 1178243789Sdim movl $0,%eax 1179243789Sdim adcl %eax,%eax 1180243789Sdim subl %edx,%ecx 1181243789Sdim adcl $0,%eax 1182243789Sdim movl %ecx,(%ebx) 1183243789Sdim addl $4,%esi 1184243789Sdim addl $4,%edi 1185243789Sdim addl $4,%ebx 1186243789Sdim.L031aw_end: 1187243789Sdim cmpl $0,36(%esp) 1188243789Sdim je .L032pw_end 1189243789Sdim movl 36(%esp),%ebp 1190243789Sdim cmpl $0,%ebp 1191243789Sdim je .L032pw_end 1192243789Sdim jge .L033pw_pos 1193243789Sdim 1194243789Sdim movl $0,%edx 1195243789Sdim subl %ebp,%edx 1196243789Sdim movl %edx,%ebp 1197243789Sdim andl $4294967288,%ebp 1198243789Sdim jz .L034pw_neg_finish 1199243789Sdim.L035pw_neg_loop: 1200243789Sdim 1201243789Sdim movl $0,%ecx 1202243789Sdim movl (%edi),%edx 1203243789Sdim subl %eax,%ecx 1204243789Sdim movl $0,%eax 1205243789Sdim adcl %eax,%eax 1206243789Sdim subl %edx,%ecx 1207243789Sdim adcl $0,%eax 1208243789Sdim movl %ecx,(%ebx) 1209243789Sdim 1210243789Sdim movl $0,%ecx 1211243789Sdim movl 4(%edi),%edx 1212243789Sdim subl %eax,%ecx 1213243789Sdim movl $0,%eax 1214243789Sdim adcl %eax,%eax 1215243789Sdim subl %edx,%ecx 1216243789Sdim adcl $0,%eax 1217243789Sdim movl %ecx,4(%ebx) 1218243789Sdim 1219243789Sdim movl $0,%ecx 1220243789Sdim movl 8(%edi),%edx 1221243789Sdim subl %eax,%ecx 1222243789Sdim movl $0,%eax 1223243789Sdim adcl %eax,%eax 1224243789Sdim subl %edx,%ecx 1225243789Sdim adcl $0,%eax 1226243789Sdim movl %ecx,8(%ebx) 1227243789Sdim 1228243789Sdim movl $0,%ecx 1229243789Sdim movl 12(%edi),%edx 1230243789Sdim subl %eax,%ecx 1231243789Sdim movl $0,%eax 1232243789Sdim adcl %eax,%eax 1233243789Sdim subl %edx,%ecx 1234243789Sdim adcl $0,%eax 1235243789Sdim movl %ecx,12(%ebx) 1236243789Sdim 1237243789Sdim movl $0,%ecx 1238243789Sdim movl 16(%edi),%edx 1239243789Sdim subl %eax,%ecx 1240243789Sdim movl $0,%eax 1241243789Sdim adcl %eax,%eax 1242243789Sdim subl %edx,%ecx 1243243789Sdim adcl $0,%eax 1244243789Sdim movl %ecx,16(%ebx) 1245243789Sdim 1246243789Sdim movl $0,%ecx 1247243789Sdim movl 20(%edi),%edx 1248243789Sdim subl %eax,%ecx 1249243789Sdim movl $0,%eax 1250243789Sdim adcl %eax,%eax 1251243789Sdim subl %edx,%ecx 1252243789Sdim adcl $0,%eax 1253243789Sdim movl %ecx,20(%ebx) 1254243789Sdim 1255243789Sdim movl $0,%ecx 1256243789Sdim movl 24(%edi),%edx 1257243789Sdim subl %eax,%ecx 1258243789Sdim movl $0,%eax 1259243789Sdim adcl %eax,%eax 1260243789Sdim subl %edx,%ecx 1261243789Sdim adcl $0,%eax 1262243789Sdim movl %ecx,24(%ebx) 1263243789Sdim 1264243789Sdim movl $0,%ecx 1265243789Sdim movl 28(%edi),%edx 1266243789Sdim subl %eax,%ecx 1267243789Sdim movl $0,%eax 1268243789Sdim adcl %eax,%eax 1269243789Sdim subl %edx,%ecx 1270243789Sdim adcl $0,%eax 1271243789Sdim movl %ecx,28(%ebx) 1272243789Sdim 1273243789Sdim addl $32,%edi 1274243789Sdim addl $32,%ebx 1275243789Sdim subl $8,%ebp 1276243789Sdim jnz .L035pw_neg_loop 1277243789Sdim.L034pw_neg_finish: 1278243789Sdim movl 36(%esp),%edx 1279243789Sdim movl $0,%ebp 1280243789Sdim subl %edx,%ebp 1281243789Sdim andl $7,%ebp 1282243789Sdim jz .L032pw_end 1283243789Sdim 1284243789Sdim movl $0,%ecx 1285243789Sdim movl (%edi),%edx 1286243789Sdim subl %eax,%ecx 1287243789Sdim movl $0,%eax 1288243789Sdim adcl %eax,%eax 1289243789Sdim subl %edx,%ecx 1290243789Sdim adcl $0,%eax 1291243789Sdim decl %ebp 1292243789Sdim movl %ecx,(%ebx) 1293243789Sdim jz .L032pw_end 1294243789Sdim 1295243789Sdim movl $0,%ecx 1296243789Sdim movl 4(%edi),%edx 1297243789Sdim subl %eax,%ecx 1298243789Sdim movl $0,%eax 1299243789Sdim adcl %eax,%eax 1300243789Sdim subl %edx,%ecx 1301243789Sdim adcl $0,%eax 1302243789Sdim decl %ebp 1303243789Sdim movl %ecx,4(%ebx) 1304243789Sdim jz .L032pw_end 1305243789Sdim 1306243789Sdim movl $0,%ecx 1307243789Sdim movl 8(%edi),%edx 1308243789Sdim subl %eax,%ecx 1309243789Sdim movl $0,%eax 1310243789Sdim adcl %eax,%eax 1311243789Sdim subl %edx,%ecx 1312243789Sdim adcl $0,%eax 1313243789Sdim decl %ebp 1314243789Sdim movl %ecx,8(%ebx) 1315243789Sdim jz .L032pw_end 1316243789Sdim 1317243789Sdim movl $0,%ecx 1318243789Sdim movl 12(%edi),%edx 1319243789Sdim subl %eax,%ecx 1320243789Sdim movl $0,%eax 1321243789Sdim adcl %eax,%eax 1322243789Sdim subl %edx,%ecx 1323243789Sdim adcl $0,%eax 1324243789Sdim decl %ebp 1325243789Sdim movl %ecx,12(%ebx) 1326243789Sdim jz .L032pw_end 1327243789Sdim 1328243789Sdim movl $0,%ecx 1329243789Sdim movl 16(%edi),%edx 1330243789Sdim subl %eax,%ecx 1331243789Sdim movl $0,%eax 1332243789Sdim adcl %eax,%eax 1333243789Sdim subl %edx,%ecx 1334243789Sdim adcl $0,%eax 1335243789Sdim decl %ebp 1336243789Sdim movl %ecx,16(%ebx) 1337243789Sdim jz .L032pw_end 1338243789Sdim 1339243789Sdim movl $0,%ecx 1340243789Sdim movl 20(%edi),%edx 1341243789Sdim subl %eax,%ecx 1342243789Sdim movl $0,%eax 1343243789Sdim adcl %eax,%eax 1344243789Sdim subl %edx,%ecx 1345243789Sdim adcl $0,%eax 1346243789Sdim decl %ebp 1347243789Sdim movl %ecx,20(%ebx) 1348243789Sdim jz .L032pw_end 1349243789Sdim 1350243789Sdim movl $0,%ecx 1351243789Sdim movl 24(%edi),%edx 1352243789Sdim subl %eax,%ecx 1353243789Sdim movl $0,%eax 1354243789Sdim adcl %eax,%eax 1355243789Sdim subl %edx,%ecx 1356243789Sdim adcl $0,%eax 1357243789Sdim movl %ecx,24(%ebx) 1358243789Sdim jmp .L032pw_end 1359243789Sdim.L033pw_pos: 1360243789Sdim andl $4294967288,%ebp 1361243789Sdim jz .L036pw_pos_finish 1362243789Sdim.L037pw_pos_loop: 1363243789Sdim 1364243789Sdim movl (%esi),%ecx 1365243789Sdim subl %eax,%ecx 1366243789Sdim movl %ecx,(%ebx) 1367243789Sdim jnc .L038pw_nc0 1368243789Sdim 1369243789Sdim movl 4(%esi),%ecx 1370243789Sdim subl %eax,%ecx 1371243789Sdim movl %ecx,4(%ebx) 1372243789Sdim jnc .L039pw_nc1 1373243789Sdim 1374243789Sdim movl 8(%esi),%ecx 1375243789Sdim subl %eax,%ecx 1376243789Sdim movl %ecx,8(%ebx) 1377243789Sdim jnc .L040pw_nc2 1378243789Sdim 1379243789Sdim movl 12(%esi),%ecx 1380243789Sdim subl %eax,%ecx 1381243789Sdim movl %ecx,12(%ebx) 1382243789Sdim jnc .L041pw_nc3 1383243789Sdim 1384243789Sdim movl 16(%esi),%ecx 1385243789Sdim subl %eax,%ecx 1386243789Sdim movl %ecx,16(%ebx) 1387243789Sdim jnc .L042pw_nc4 1388243789Sdim 1389243789Sdim movl 20(%esi),%ecx 1390243789Sdim subl %eax,%ecx 1391243789Sdim movl %ecx,20(%ebx) 1392243789Sdim jnc .L043pw_nc5 1393243789Sdim 1394243789Sdim movl 24(%esi),%ecx 1395243789Sdim subl %eax,%ecx 1396243789Sdim movl %ecx,24(%ebx) 1397243789Sdim jnc .L044pw_nc6 1398243789Sdim 1399243789Sdim movl 28(%esi),%ecx 1400243789Sdim subl %eax,%ecx 1401243789Sdim movl %ecx,28(%ebx) 1402243789Sdim jnc .L045pw_nc7 1403243789Sdim 1404243789Sdim addl $32,%esi 1405243789Sdim addl $32,%ebx 1406243789Sdim subl $8,%ebp 1407243789Sdim jnz .L037pw_pos_loop 1408243789Sdim.L036pw_pos_finish: 1409243789Sdim movl 36(%esp),%ebp 1410243789Sdim andl $7,%ebp 1411243789Sdim jz .L032pw_end 1412243789Sdim 1413243789Sdim movl (%esi),%ecx 1414243789Sdim subl %eax,%ecx 1415243789Sdim movl %ecx,(%ebx) 1416243789Sdim jnc .L046pw_tail_nc0 1417243789Sdim decl %ebp 1418243789Sdim jz .L032pw_end 1419243789Sdim 1420243789Sdim movl 4(%esi),%ecx 1421243789Sdim subl %eax,%ecx 1422243789Sdim movl %ecx,4(%ebx) 1423243789Sdim jnc .L047pw_tail_nc1 1424243789Sdim decl %ebp 1425243789Sdim jz .L032pw_end 1426243789Sdim 1427243789Sdim movl 8(%esi),%ecx 1428243789Sdim subl %eax,%ecx 1429243789Sdim movl %ecx,8(%ebx) 1430243789Sdim jnc .L048pw_tail_nc2 1431243789Sdim decl %ebp 1432243789Sdim jz .L032pw_end 1433243789Sdim 1434243789Sdim movl 12(%esi),%ecx 1435243789Sdim subl %eax,%ecx 1436243789Sdim movl %ecx,12(%ebx) 1437243789Sdim jnc .L049pw_tail_nc3 1438243789Sdim decl %ebp 1439243789Sdim jz .L032pw_end 1440243789Sdim 1441243789Sdim movl 16(%esi),%ecx 1442243789Sdim subl %eax,%ecx 1443243789Sdim movl %ecx,16(%ebx) 1444243789Sdim jnc .L050pw_tail_nc4 1445243789Sdim decl %ebp 1446243789Sdim jz .L032pw_end 1447243789Sdim 1448243789Sdim movl 20(%esi),%ecx 1449243789Sdim subl %eax,%ecx 1450243789Sdim movl %ecx,20(%ebx) 1451243789Sdim jnc .L051pw_tail_nc5 1452243789Sdim decl %ebp 1453243789Sdim jz .L032pw_end 1454243789Sdim 1455243789Sdim movl 24(%esi),%ecx 1456243789Sdim subl %eax,%ecx 1457243789Sdim movl %ecx,24(%ebx) 1458243789Sdim jnc .L052pw_tail_nc6 1459243789Sdim movl $1,%eax 1460243789Sdim jmp .L032pw_end 1461243789Sdim.L053pw_nc_loop: 1462243789Sdim movl (%esi),%ecx 1463243789Sdim movl %ecx,(%ebx) 1464243789Sdim.L038pw_nc0: 1465243789Sdim movl 4(%esi),%ecx 1466243789Sdim movl %ecx,4(%ebx) 1467243789Sdim.L039pw_nc1: 1468243789Sdim movl 8(%esi),%ecx 1469243789Sdim movl %ecx,8(%ebx) 1470243789Sdim.L040pw_nc2: 1471243789Sdim movl 12(%esi),%ecx 1472243789Sdim movl %ecx,12(%ebx) 1473243789Sdim.L041pw_nc3: 1474243789Sdim movl 16(%esi),%ecx 1475243789Sdim movl %ecx,16(%ebx) 1476243789Sdim.L042pw_nc4: 1477243789Sdim movl 20(%esi),%ecx 1478243789Sdim movl %ecx,20(%ebx) 1479243789Sdim.L043pw_nc5: 1480243789Sdim movl 24(%esi),%ecx 1481243789Sdim movl %ecx,24(%ebx) 1482243789Sdim.L044pw_nc6: 1483243789Sdim movl 28(%esi),%ecx 1484243789Sdim movl %ecx,28(%ebx) 1485243789Sdim.L045pw_nc7: 1486243789Sdim 1487243789Sdim addl $32,%esi 1488243789Sdim addl $32,%ebx 1489243789Sdim subl $8,%ebp 1490243789Sdim jnz .L053pw_nc_loop 1491243789Sdim movl 36(%esp),%ebp 1492243789Sdim andl $7,%ebp 1493243789Sdim jz .L054pw_nc_end 1494243789Sdim movl (%esi),%ecx 1495243789Sdim movl %ecx,(%ebx) 1496243789Sdim.L046pw_tail_nc0: 1497243789Sdim decl %ebp 1498243789Sdim jz .L054pw_nc_end 1499243789Sdim movl 4(%esi),%ecx 1500243789Sdim movl %ecx,4(%ebx) 1501243789Sdim.L047pw_tail_nc1: 1502243789Sdim decl %ebp 1503243789Sdim jz .L054pw_nc_end 1504243789Sdim movl 8(%esi),%ecx 1505243789Sdim movl %ecx,8(%ebx) 1506243789Sdim.L048pw_tail_nc2: 1507243789Sdim decl %ebp 1508243789Sdim jz .L054pw_nc_end 1509243789Sdim movl 12(%esi),%ecx 1510243789Sdim movl %ecx,12(%ebx) 1511243789Sdim.L049pw_tail_nc3: 1512243789Sdim decl %ebp 1513243789Sdim jz .L054pw_nc_end 1514243789Sdim movl 16(%esi),%ecx 1515243789Sdim movl %ecx,16(%ebx) 1516243789Sdim.L050pw_tail_nc4: 1517243789Sdim decl %ebp 1518243789Sdim jz .L054pw_nc_end 1519243789Sdim movl 20(%esi),%ecx 1520243789Sdim movl %ecx,20(%ebx) 1521243789Sdim.L051pw_tail_nc5: 1522243789Sdim decl %ebp 1523243789Sdim jz .L054pw_nc_end 1524243789Sdim movl 24(%esi),%ecx 1525243789Sdim movl %ecx,24(%ebx) 1526243789Sdim.L052pw_tail_nc6: 1527243789Sdim.L054pw_nc_end: 1528243789Sdim movl $0,%eax 1529243789Sdim.L032pw_end: 1530243789Sdim popl %edi 1531243789Sdim popl %esi 1532243789Sdim popl %ebx 1533243789Sdim popl %ebp 1534243789Sdim ret 1535243789Sdim.size bn_sub_part_words,.-.L_bn_sub_part_words_begin 1536243789Sdim.comm OPENSSL_ia32cap_P,8,4 1537243789Sdim#else 1538243789Sdim.file "bn-586.S" 1539243789Sdim.text 1540243789Sdim.globl bn_mul_add_words 1541243789Sdim.type bn_mul_add_words,@function 1542243789Sdim.align 16 1543243789Sdimbn_mul_add_words: 1544243789Sdim.L_bn_mul_add_words_begin: 1545243789Sdim leal OPENSSL_ia32cap_P,%eax 1546243789Sdim btl $26,(%eax) 1547243789Sdim jnc .L000maw_non_sse2 1548243789Sdim movl 4(%esp),%eax 1549243789Sdim movl 8(%esp),%edx 1550243789Sdim movl 12(%esp),%ecx 1551243789Sdim movd 16(%esp),%mm0 1552243789Sdim pxor %mm1,%mm1 1553243789Sdim jmp .L001maw_sse2_entry 1554243789Sdim.align 16 1555243789Sdim.L002maw_sse2_unrolled: 1556243789Sdim movd (%eax),%mm3 1557243789Sdim paddq %mm3,%mm1 1558243789Sdim movd (%edx),%mm2 1559243789Sdim pmuludq %mm0,%mm2 1560243789Sdim movd 4(%edx),%mm4 1561243789Sdim pmuludq %mm0,%mm4 1562243789Sdim movd 8(%edx),%mm6 1563243789Sdim pmuludq %mm0,%mm6 1564243789Sdim movd 12(%edx),%mm7 1565243789Sdim pmuludq %mm0,%mm7 1566243789Sdim paddq %mm2,%mm1 1567243789Sdim movd 4(%eax),%mm3 1568243789Sdim paddq %mm4,%mm3 1569243789Sdim movd 8(%eax),%mm5 1570243789Sdim paddq %mm6,%mm5 1571243789Sdim movd 12(%eax),%mm4 1572243789Sdim paddq %mm4,%mm7 1573243789Sdim movd %mm1,(%eax) 1574243789Sdim movd 16(%edx),%mm2 1575243789Sdim pmuludq %mm0,%mm2 1576243789Sdim psrlq $32,%mm1 1577243789Sdim movd 20(%edx),%mm4 1578243789Sdim pmuludq %mm0,%mm4 1579243789Sdim paddq %mm3,%mm1 1580243789Sdim movd 24(%edx),%mm6 1581243789Sdim pmuludq %mm0,%mm6 1582243789Sdim movd %mm1,4(%eax) 1583243789Sdim psrlq $32,%mm1 1584243789Sdim movd 28(%edx),%mm3 1585243789Sdim addl $32,%edx 1586243789Sdim pmuludq %mm0,%mm3 1587243789Sdim paddq %mm5,%mm1 1588243789Sdim movd 16(%eax),%mm5 1589243789Sdim paddq %mm5,%mm2 1590243789Sdim movd %mm1,8(%eax) 1591243789Sdim psrlq $32,%mm1 1592243789Sdim paddq %mm7,%mm1 1593243789Sdim movd 20(%eax),%mm5 1594243789Sdim paddq %mm5,%mm4 1595243789Sdim movd %mm1,12(%eax) 1596243789Sdim psrlq $32,%mm1 1597243789Sdim paddq %mm2,%mm1 1598243789Sdim movd 24(%eax),%mm5 1599243789Sdim paddq %mm5,%mm6 1600243789Sdim movd %mm1,16(%eax) 1601243789Sdim psrlq $32,%mm1 1602243789Sdim paddq %mm4,%mm1 1603243789Sdim movd 28(%eax),%mm5 1604243789Sdim paddq %mm5,%mm3 1605243789Sdim movd %mm1,20(%eax) 1606243789Sdim psrlq $32,%mm1 1607243789Sdim paddq %mm6,%mm1 1608243789Sdim movd %mm1,24(%eax) 1609243789Sdim psrlq $32,%mm1 1610243789Sdim paddq %mm3,%mm1 1611243789Sdim movd %mm1,28(%eax) 1612243789Sdim leal 32(%eax),%eax 1613243789Sdim psrlq $32,%mm1 1614243789Sdim subl $8,%ecx 1615243789Sdim jz .L003maw_sse2_exit 1616243789Sdim.L001maw_sse2_entry: 1617243789Sdim testl $4294967288,%ecx 1618243789Sdim jnz .L002maw_sse2_unrolled 1619243789Sdim.align 4 1620243789Sdim.L004maw_sse2_loop: 1621243789Sdim movd (%edx),%mm2 1622243789Sdim movd (%eax),%mm3 1623243789Sdim pmuludq %mm0,%mm2 1624243789Sdim leal 4(%edx),%edx 1625243789Sdim paddq %mm3,%mm1 1626243789Sdim paddq %mm2,%mm1 1627243789Sdim movd %mm1,(%eax) 1628243789Sdim subl $1,%ecx 1629243789Sdim psrlq $32,%mm1 1630243789Sdim leal 4(%eax),%eax 1631243789Sdim jnz .L004maw_sse2_loop 1632243789Sdim.L003maw_sse2_exit: 1633243789Sdim movd %mm1,%eax 1634243789Sdim emms 1635243789Sdim ret 1636243789Sdim.align 16 1637243789Sdim.L000maw_non_sse2: 1638243789Sdim pushl %ebp 1639243789Sdim pushl %ebx 1640243789Sdim pushl %esi 1641243789Sdim pushl %edi 1642243789Sdim 1643243789Sdim xorl %esi,%esi 1644243789Sdim movl 20(%esp),%edi 1645243789Sdim movl 28(%esp),%ecx 1646243789Sdim movl 24(%esp),%ebx 1647243789Sdim andl $4294967288,%ecx 1648243789Sdim movl 32(%esp),%ebp 1649243789Sdim pushl %ecx 1650243789Sdim jz .L005maw_finish 1651243789Sdim.align 16 1652243789Sdim.L006maw_loop: 1653243789Sdim 1654243789Sdim movl (%ebx),%eax 1655243789Sdim mull %ebp 1656243789Sdim addl %esi,%eax 1657243789Sdim adcl $0,%edx 1658243789Sdim addl (%edi),%eax 1659243789Sdim adcl $0,%edx 1660243789Sdim movl %eax,(%edi) 1661243789Sdim movl %edx,%esi 1662243789Sdim 1663243789Sdim movl 4(%ebx),%eax 1664243789Sdim mull %ebp 1665243789Sdim addl %esi,%eax 1666243789Sdim adcl $0,%edx 1667243789Sdim addl 4(%edi),%eax 1668243789Sdim adcl $0,%edx 1669243789Sdim movl %eax,4(%edi) 1670243789Sdim movl %edx,%esi 1671243789Sdim 1672243789Sdim movl 8(%ebx),%eax 1673243789Sdim mull %ebp 1674243789Sdim addl %esi,%eax 1675243789Sdim adcl $0,%edx 1676243789Sdim addl 8(%edi),%eax 1677243789Sdim adcl $0,%edx 1678243789Sdim movl %eax,8(%edi) 1679243789Sdim movl %edx,%esi 1680243789Sdim 1681243789Sdim movl 12(%ebx),%eax 1682243789Sdim mull %ebp 1683243789Sdim addl %esi,%eax 1684243789Sdim adcl $0,%edx 1685243789Sdim addl 12(%edi),%eax 1686243789Sdim adcl $0,%edx 1687243789Sdim movl %eax,12(%edi) 1688243789Sdim movl %edx,%esi 1689243789Sdim 1690243789Sdim movl 16(%ebx),%eax 1691243789Sdim mull %ebp 1692243789Sdim addl %esi,%eax 1693243789Sdim adcl $0,%edx 1694243789Sdim addl 16(%edi),%eax 1695243789Sdim adcl $0,%edx 1696243789Sdim movl %eax,16(%edi) 1697243789Sdim movl %edx,%esi 1698243789Sdim 1699243789Sdim movl 20(%ebx),%eax 1700243789Sdim mull %ebp 1701243789Sdim addl %esi,%eax 1702243789Sdim adcl $0,%edx 1703243789Sdim addl 20(%edi),%eax 1704243789Sdim adcl $0,%edx 1705243789Sdim movl %eax,20(%edi) 1706243789Sdim movl %edx,%esi 1707243789Sdim 1708243789Sdim movl 24(%ebx),%eax 1709243789Sdim mull %ebp 1710243789Sdim addl %esi,%eax 1711243789Sdim adcl $0,%edx 1712243789Sdim addl 24(%edi),%eax 1713243789Sdim adcl $0,%edx 1714243789Sdim movl %eax,24(%edi) 1715243789Sdim movl %edx,%esi 1716243789Sdim 1717243789Sdim movl 28(%ebx),%eax 1718243789Sdim mull %ebp 1719243789Sdim addl %esi,%eax 1720243789Sdim adcl $0,%edx 1721243789Sdim addl 28(%edi),%eax 1722243789Sdim adcl $0,%edx 1723243789Sdim movl %eax,28(%edi) 1724243789Sdim movl %edx,%esi 1725243789Sdim 1726243789Sdim subl $8,%ecx 1727243789Sdim leal 32(%ebx),%ebx 1728243789Sdim leal 32(%edi),%edi 1729243789Sdim jnz .L006maw_loop 1730243789Sdim.L005maw_finish: 1731243789Sdim movl 32(%esp),%ecx 1732243789Sdim andl $7,%ecx 1733243789Sdim jnz .L007maw_finish2 1734243789Sdim jmp .L008maw_end 1735243789Sdim.L007maw_finish2: 1736243789Sdim 1737243789Sdim movl (%ebx),%eax 1738243789Sdim mull %ebp 1739243789Sdim addl %esi,%eax 1740243789Sdim adcl $0,%edx 1741243789Sdim addl (%edi),%eax 1742243789Sdim adcl $0,%edx 1743243789Sdim decl %ecx 1744243789Sdim movl %eax,(%edi) 1745243789Sdim movl %edx,%esi 1746243789Sdim jz .L008maw_end 1747243789Sdim 1748243789Sdim movl 4(%ebx),%eax 1749243789Sdim mull %ebp 1750243789Sdim addl %esi,%eax 1751243789Sdim adcl $0,%edx 1752243789Sdim addl 4(%edi),%eax 1753243789Sdim adcl $0,%edx 1754243789Sdim decl %ecx 1755243789Sdim movl %eax,4(%edi) 1756243789Sdim movl %edx,%esi 1757243789Sdim jz .L008maw_end 1758243789Sdim 1759243789Sdim movl 8(%ebx),%eax 1760243789Sdim mull %ebp 1761243789Sdim addl %esi,%eax 1762243789Sdim adcl $0,%edx 1763243789Sdim addl 8(%edi),%eax 1764243789Sdim adcl $0,%edx 1765243789Sdim decl %ecx 1766243789Sdim movl %eax,8(%edi) 1767243789Sdim movl %edx,%esi 1768243789Sdim jz .L008maw_end 1769243789Sdim 1770243789Sdim movl 12(%ebx),%eax 1771243789Sdim mull %ebp 1772243789Sdim addl %esi,%eax 1773243789Sdim adcl $0,%edx 1774243789Sdim addl 12(%edi),%eax 1775243789Sdim adcl $0,%edx 1776243789Sdim decl %ecx 1777243789Sdim movl %eax,12(%edi) 1778243789Sdim movl %edx,%esi 1779243789Sdim jz .L008maw_end 1780243789Sdim 1781243789Sdim movl 16(%ebx),%eax 1782243789Sdim mull %ebp 1783243789Sdim addl %esi,%eax 1784243789Sdim adcl $0,%edx 1785243789Sdim addl 16(%edi),%eax 1786243789Sdim adcl $0,%edx 1787243789Sdim decl %ecx 1788243789Sdim movl %eax,16(%edi) 1789243789Sdim movl %edx,%esi 1790243789Sdim jz .L008maw_end 1791243789Sdim 1792243789Sdim movl 20(%ebx),%eax 1793243789Sdim mull %ebp 1794243789Sdim addl %esi,%eax 1795243789Sdim adcl $0,%edx 1796243789Sdim addl 20(%edi),%eax 1797243789Sdim adcl $0,%edx 1798243789Sdim decl %ecx 1799243789Sdim movl %eax,20(%edi) 1800243789Sdim movl %edx,%esi 1801243789Sdim jz .L008maw_end 1802243789Sdim 1803243789Sdim movl 24(%ebx),%eax 1804243789Sdim mull %ebp 1805243789Sdim addl %esi,%eax 1806243789Sdim adcl $0,%edx 1807243789Sdim addl 24(%edi),%eax 1808243789Sdim adcl $0,%edx 1809243789Sdim movl %eax,24(%edi) 1810243789Sdim movl %edx,%esi 1811243789Sdim.L008maw_end: 1812243789Sdim movl %esi,%eax 1813243789Sdim popl %ecx 1814243789Sdim popl %edi 1815243789Sdim popl %esi 1816243789Sdim popl %ebx 1817243789Sdim popl %ebp 1818243789Sdim ret 1819243789Sdim.size bn_mul_add_words,.-.L_bn_mul_add_words_begin 1820243789Sdim.globl bn_mul_words 1821243789Sdim.type bn_mul_words,@function 1822243789Sdim.align 16 1823243789Sdimbn_mul_words: 1824243789Sdim.L_bn_mul_words_begin: 1825243789Sdim leal OPENSSL_ia32cap_P,%eax 1826243789Sdim btl $26,(%eax) 1827243789Sdim jnc .L009mw_non_sse2 1828243789Sdim movl 4(%esp),%eax 1829243789Sdim movl 8(%esp),%edx 1830243789Sdim movl 12(%esp),%ecx 1831243789Sdim movd 16(%esp),%mm0 1832243789Sdim pxor %mm1,%mm1 1833243789Sdim.align 16 1834243789Sdim.L010mw_sse2_loop: 1835243789Sdim movd (%edx),%mm2 1836243789Sdim pmuludq %mm0,%mm2 1837243789Sdim leal 4(%edx),%edx 1838243789Sdim paddq %mm2,%mm1 1839243789Sdim movd %mm1,(%eax) 1840243789Sdim subl $1,%ecx 1841243789Sdim psrlq $32,%mm1 1842243789Sdim leal 4(%eax),%eax 1843243789Sdim jnz .L010mw_sse2_loop 1844243789Sdim movd %mm1,%eax 1845243789Sdim emms 1846243789Sdim ret 1847243789Sdim.align 16 1848243789Sdim.L009mw_non_sse2: 1849243789Sdim pushl %ebp 1850243789Sdim pushl %ebx 1851243789Sdim pushl %esi 1852243789Sdim pushl %edi 1853243789Sdim 1854243789Sdim xorl %esi,%esi 1855243789Sdim movl 20(%esp),%edi 1856243789Sdim movl 24(%esp),%ebx 1857243789Sdim movl 28(%esp),%ebp 1858243789Sdim movl 32(%esp),%ecx 1859243789Sdim andl $4294967288,%ebp 1860243789Sdim jz .L011mw_finish 1861243789Sdim.L012mw_loop: 1862243789Sdim 1863243789Sdim movl (%ebx),%eax 1864243789Sdim mull %ecx 1865243789Sdim addl %esi,%eax 1866243789Sdim adcl $0,%edx 1867243789Sdim movl %eax,(%edi) 1868243789Sdim movl %edx,%esi 1869243789Sdim 1870243789Sdim movl 4(%ebx),%eax 1871243789Sdim mull %ecx 1872243789Sdim addl %esi,%eax 1873243789Sdim adcl $0,%edx 1874243789Sdim movl %eax,4(%edi) 1875243789Sdim movl %edx,%esi 1876243789Sdim 1877243789Sdim movl 8(%ebx),%eax 1878243789Sdim mull %ecx 1879243789Sdim addl %esi,%eax 1880243789Sdim adcl $0,%edx 1881243789Sdim movl %eax,8(%edi) 1882243789Sdim movl %edx,%esi 1883243789Sdim 1884243789Sdim movl 12(%ebx),%eax 1885243789Sdim mull %ecx 1886243789Sdim addl %esi,%eax 1887243789Sdim adcl $0,%edx 1888243789Sdim movl %eax,12(%edi) 1889243789Sdim movl %edx,%esi 1890243789Sdim 1891243789Sdim movl 16(%ebx),%eax 1892243789Sdim mull %ecx 1893243789Sdim addl %esi,%eax 1894243789Sdim adcl $0,%edx 1895243789Sdim movl %eax,16(%edi) 1896243789Sdim movl %edx,%esi 1897243789Sdim 1898243789Sdim movl 20(%ebx),%eax 1899243789Sdim mull %ecx 1900243789Sdim addl %esi,%eax 1901243789Sdim adcl $0,%edx 1902243789Sdim movl %eax,20(%edi) 1903243789Sdim movl %edx,%esi 1904243789Sdim 1905243789Sdim movl 24(%ebx),%eax 1906243789Sdim mull %ecx 1907243789Sdim addl %esi,%eax 1908243789Sdim adcl $0,%edx 1909243789Sdim movl %eax,24(%edi) 1910243789Sdim movl %edx,%esi 1911243789Sdim 1912243789Sdim movl 28(%ebx),%eax 1913243789Sdim mull %ecx 1914243789Sdim addl %esi,%eax 1915243789Sdim adcl $0,%edx 1916243789Sdim movl %eax,28(%edi) 1917243789Sdim movl %edx,%esi 1918243789Sdim 1919243789Sdim addl $32,%ebx 1920243789Sdim addl $32,%edi 1921243789Sdim subl $8,%ebp 1922243789Sdim jz .L011mw_finish 1923243789Sdim jmp .L012mw_loop 1924243789Sdim.L011mw_finish: 1925243789Sdim movl 28(%esp),%ebp 1926243789Sdim andl $7,%ebp 1927243789Sdim jnz .L013mw_finish2 1928243789Sdim jmp .L014mw_end 1929243789Sdim.L013mw_finish2: 1930243789Sdim 1931243789Sdim movl (%ebx),%eax 1932243789Sdim mull %ecx 1933243789Sdim addl %esi,%eax 1934243789Sdim adcl $0,%edx 1935243789Sdim movl %eax,(%edi) 1936243789Sdim movl %edx,%esi 1937243789Sdim decl %ebp 1938243789Sdim jz .L014mw_end 1939243789Sdim 1940243789Sdim movl 4(%ebx),%eax 1941243789Sdim mull %ecx 1942243789Sdim addl %esi,%eax 1943243789Sdim adcl $0,%edx 1944243789Sdim movl %eax,4(%edi) 1945243789Sdim movl %edx,%esi 1946243789Sdim decl %ebp 1947243789Sdim jz .L014mw_end 1948243789Sdim 1949243789Sdim movl 8(%ebx),%eax 1950243789Sdim mull %ecx 1951243789Sdim addl %esi,%eax 1952243789Sdim adcl $0,%edx 1953243789Sdim movl %eax,8(%edi) 1954243789Sdim movl %edx,%esi 1955243789Sdim decl %ebp 1956243789Sdim jz .L014mw_end 1957243789Sdim 1958243789Sdim movl 12(%ebx),%eax 1959243789Sdim mull %ecx 1960243789Sdim addl %esi,%eax 1961243789Sdim adcl $0,%edx 1962243789Sdim movl %eax,12(%edi) 1963243789Sdim movl %edx,%esi 1964243789Sdim decl %ebp 1965243789Sdim jz .L014mw_end 1966243789Sdim 1967243789Sdim movl 16(%ebx),%eax 1968243789Sdim mull %ecx 1969243789Sdim addl %esi,%eax 1970243789Sdim adcl $0,%edx 1971243789Sdim movl %eax,16(%edi) 1972243789Sdim movl %edx,%esi 1973243789Sdim decl %ebp 1974243789Sdim jz .L014mw_end 1975243789Sdim 1976243789Sdim movl 20(%ebx),%eax 1977243789Sdim mull %ecx 1978243789Sdim addl %esi,%eax 1979243789Sdim adcl $0,%edx 1980243789Sdim movl %eax,20(%edi) 1981243789Sdim movl %edx,%esi 1982243789Sdim decl %ebp 1983243789Sdim jz .L014mw_end 1984243789Sdim 1985243789Sdim movl 24(%ebx),%eax 1986243789Sdim mull %ecx 1987243789Sdim addl %esi,%eax 1988243789Sdim adcl $0,%edx 1989243789Sdim movl %eax,24(%edi) 1990243789Sdim movl %edx,%esi 1991243789Sdim.L014mw_end: 1992243789Sdim movl %esi,%eax 1993243789Sdim popl %edi 1994243789Sdim popl %esi 1995243789Sdim popl %ebx 1996243789Sdim popl %ebp 1997243789Sdim ret 1998243789Sdim.size bn_mul_words,.-.L_bn_mul_words_begin 1999243789Sdim.globl bn_sqr_words 2000243789Sdim.type bn_sqr_words,@function 2001243789Sdim.align 16 2002243789Sdimbn_sqr_words: 2003243789Sdim.L_bn_sqr_words_begin: 2004243789Sdim leal OPENSSL_ia32cap_P,%eax 2005243789Sdim btl $26,(%eax) 2006243789Sdim jnc .L015sqr_non_sse2 2007243789Sdim movl 4(%esp),%eax 2008243789Sdim movl 8(%esp),%edx 2009243789Sdim movl 12(%esp),%ecx 2010243789Sdim.align 16 2011243789Sdim.L016sqr_sse2_loop: 2012243789Sdim movd (%edx),%mm0 2013243789Sdim pmuludq %mm0,%mm0 2014243789Sdim leal 4(%edx),%edx 2015243789Sdim movq %mm0,(%eax) 2016243789Sdim subl $1,%ecx 2017243789Sdim leal 8(%eax),%eax 2018243789Sdim jnz .L016sqr_sse2_loop 2019243789Sdim emms 2020243789Sdim ret 2021243789Sdim.align 16 2022243789Sdim.L015sqr_non_sse2: 2023243789Sdim pushl %ebp 2024243789Sdim pushl %ebx 2025243789Sdim pushl %esi 2026243789Sdim pushl %edi 2027243789Sdim 2028243789Sdim movl 20(%esp),%esi 2029243789Sdim movl 24(%esp),%edi 2030243789Sdim movl 28(%esp),%ebx 2031243789Sdim andl $4294967288,%ebx 2032243789Sdim jz .L017sw_finish 2033243789Sdim.L018sw_loop: 2034243789Sdim 2035243789Sdim movl (%edi),%eax 2036243789Sdim mull %eax 2037243789Sdim movl %eax,(%esi) 2038243789Sdim movl %edx,4(%esi) 2039243789Sdim 2040243789Sdim movl 4(%edi),%eax 2041243789Sdim mull %eax 2042243789Sdim movl %eax,8(%esi) 2043243789Sdim movl %edx,12(%esi) 2044243789Sdim 2045243789Sdim movl 8(%edi),%eax 2046243789Sdim mull %eax 2047243789Sdim movl %eax,16(%esi) 2048243789Sdim movl %edx,20(%esi) 2049243789Sdim 2050243789Sdim movl 12(%edi),%eax 2051243789Sdim mull %eax 2052243789Sdim movl %eax,24(%esi) 2053243789Sdim movl %edx,28(%esi) 2054243789Sdim 2055243789Sdim movl 16(%edi),%eax 2056243789Sdim mull %eax 2057243789Sdim movl %eax,32(%esi) 2058243789Sdim movl %edx,36(%esi) 2059243789Sdim 2060243789Sdim movl 20(%edi),%eax 2061243789Sdim mull %eax 2062243789Sdim movl %eax,40(%esi) 2063243789Sdim movl %edx,44(%esi) 2064243789Sdim 2065243789Sdim movl 24(%edi),%eax 2066243789Sdim mull %eax 2067243789Sdim movl %eax,48(%esi) 2068243789Sdim movl %edx,52(%esi) 2069243789Sdim 2070243789Sdim movl 28(%edi),%eax 2071243789Sdim mull %eax 2072243789Sdim movl %eax,56(%esi) 2073243789Sdim movl %edx,60(%esi) 2074243789Sdim 2075243789Sdim addl $32,%edi 2076243789Sdim addl $64,%esi 2077243789Sdim subl $8,%ebx 2078243789Sdim jnz .L018sw_loop 2079243789Sdim.L017sw_finish: 2080243789Sdim movl 28(%esp),%ebx 2081243789Sdim andl $7,%ebx 2082243789Sdim jz .L019sw_end 2083243789Sdim 2084243789Sdim movl (%edi),%eax 2085243789Sdim mull %eax 2086243789Sdim movl %eax,(%esi) 2087243789Sdim decl %ebx 2088243789Sdim movl %edx,4(%esi) 2089243789Sdim jz .L019sw_end 2090243789Sdim 2091243789Sdim movl 4(%edi),%eax 2092243789Sdim mull %eax 2093243789Sdim movl %eax,8(%esi) 2094243789Sdim decl %ebx 2095243789Sdim movl %edx,12(%esi) 2096243789Sdim jz .L019sw_end 2097243789Sdim 2098243789Sdim movl 8(%edi),%eax 2099243789Sdim mull %eax 2100243789Sdim movl %eax,16(%esi) 2101243789Sdim decl %ebx 2102243789Sdim movl %edx,20(%esi) 2103243789Sdim jz .L019sw_end 2104243789Sdim 2105243789Sdim movl 12(%edi),%eax 2106243789Sdim mull %eax 2107243789Sdim movl %eax,24(%esi) 2108243789Sdim decl %ebx 2109243789Sdim movl %edx,28(%esi) 2110243789Sdim jz .L019sw_end 2111243789Sdim 2112243789Sdim movl 16(%edi),%eax 2113243789Sdim mull %eax 2114243789Sdim movl %eax,32(%esi) 2115243789Sdim decl %ebx 2116243789Sdim movl %edx,36(%esi) 2117243789Sdim jz .L019sw_end 2118243789Sdim 2119243789Sdim movl 20(%edi),%eax 2120243789Sdim mull %eax 2121243789Sdim movl %eax,40(%esi) 2122243789Sdim decl %ebx 2123243789Sdim movl %edx,44(%esi) 2124243789Sdim jz .L019sw_end 2125243789Sdim 2126243789Sdim movl 24(%edi),%eax 2127243789Sdim mull %eax 2128243789Sdim movl %eax,48(%esi) 2129243789Sdim movl %edx,52(%esi) 2130243789Sdim.L019sw_end: 2131243789Sdim popl %edi 2132243789Sdim popl %esi 2133243789Sdim popl %ebx 2134243789Sdim popl %ebp 2135243789Sdim ret 2136243789Sdim.size bn_sqr_words,.-.L_bn_sqr_words_begin 2137243789Sdim.globl bn_div_words 2138243789Sdim.type bn_div_words,@function 2139243789Sdim.align 16 2140243789Sdimbn_div_words: 2141243789Sdim.L_bn_div_words_begin: 2142243789Sdim movl 4(%esp),%edx 2143243789Sdim movl 8(%esp),%eax 2144243789Sdim movl 12(%esp),%ecx 2145243789Sdim divl %ecx 2146243789Sdim ret 2147243789Sdim.size bn_div_words,.-.L_bn_div_words_begin 2148243789Sdim.globl bn_add_words 2149243789Sdim.type bn_add_words,@function 2150243789Sdim.align 16 2151243789Sdimbn_add_words: 2152243789Sdim.L_bn_add_words_begin: 2153243789Sdim pushl %ebp 2154243789Sdim pushl %ebx 2155243789Sdim pushl %esi 2156243789Sdim pushl %edi 2157243789Sdim 2158243789Sdim movl 20(%esp),%ebx 2159243789Sdim movl 24(%esp),%esi 2160243789Sdim movl 28(%esp),%edi 2161243789Sdim movl 32(%esp),%ebp 2162243789Sdim xorl %eax,%eax 2163243789Sdim andl $4294967288,%ebp 2164243789Sdim jz .L020aw_finish 2165243789Sdim.L021aw_loop: 2166243789Sdim 2167243789Sdim movl (%esi),%ecx 2168243789Sdim movl (%edi),%edx 2169243789Sdim addl %eax,%ecx 2170243789Sdim movl $0,%eax 2171243789Sdim adcl %eax,%eax 2172243789Sdim addl %edx,%ecx 2173243789Sdim adcl $0,%eax 2174243789Sdim movl %ecx,(%ebx) 2175243789Sdim 2176243789Sdim movl 4(%esi),%ecx 2177243789Sdim movl 4(%edi),%edx 2178243789Sdim addl %eax,%ecx 2179243789Sdim movl $0,%eax 2180243789Sdim adcl %eax,%eax 2181243789Sdim addl %edx,%ecx 2182243789Sdim adcl $0,%eax 2183243789Sdim movl %ecx,4(%ebx) 2184243789Sdim 2185243789Sdim movl 8(%esi),%ecx 2186243789Sdim movl 8(%edi),%edx 2187243789Sdim addl %eax,%ecx 2188243789Sdim movl $0,%eax 2189243789Sdim adcl %eax,%eax 2190243789Sdim addl %edx,%ecx 2191243789Sdim adcl $0,%eax 2192243789Sdim movl %ecx,8(%ebx) 2193243789Sdim 2194243789Sdim movl 12(%esi),%ecx 2195243789Sdim movl 12(%edi),%edx 2196243789Sdim addl %eax,%ecx 2197243789Sdim movl $0,%eax 2198243789Sdim adcl %eax,%eax 2199243789Sdim addl %edx,%ecx 2200243789Sdim adcl $0,%eax 2201243789Sdim movl %ecx,12(%ebx) 2202243789Sdim 2203243789Sdim movl 16(%esi),%ecx 2204243789Sdim movl 16(%edi),%edx 2205243789Sdim addl %eax,%ecx 2206243789Sdim movl $0,%eax 2207243789Sdim adcl %eax,%eax 2208243789Sdim addl %edx,%ecx 2209243789Sdim adcl $0,%eax 2210243789Sdim movl %ecx,16(%ebx) 2211243789Sdim 2212243789Sdim movl 20(%esi),%ecx 2213243789Sdim movl 20(%edi),%edx 2214243789Sdim addl %eax,%ecx 2215243789Sdim movl $0,%eax 2216243789Sdim adcl %eax,%eax 2217243789Sdim addl %edx,%ecx 2218249423Sdim adcl $0,%eax 2219243789Sdim movl %ecx,20(%ebx) 2220243789Sdim 2221243789Sdim movl 24(%esi),%ecx 2222243789Sdim movl 24(%edi),%edx 2223243789Sdim addl %eax,%ecx 2224249423Sdim movl $0,%eax 2225243789Sdim adcl %eax,%eax 2226243789Sdim addl %edx,%ecx 2227243789Sdim adcl $0,%eax 2228243789Sdim movl %ecx,24(%ebx) 2229243789Sdim 2230243789Sdim movl 28(%esi),%ecx 2231243789Sdim movl 28(%edi),%edx 2232243789Sdim addl %eax,%ecx 2233243789Sdim movl $0,%eax 2234243789Sdim adcl %eax,%eax 2235243789Sdim addl %edx,%ecx 2236243789Sdim adcl $0,%eax 2237243789Sdim movl %ecx,28(%ebx) 2238243789Sdim 2239243789Sdim addl $32,%esi 2240243789Sdim addl $32,%edi 2241243789Sdim addl $32,%ebx 2242243789Sdim subl $8,%ebp 2243243789Sdim jnz .L021aw_loop 2244243789Sdim.L020aw_finish: 2245243789Sdim movl 32(%esp),%ebp 2246243789Sdim andl $7,%ebp 2247243789Sdim jz .L022aw_end 2248243789Sdim 2249243789Sdim movl (%esi),%ecx 2250243789Sdim movl (%edi),%edx 2251243789Sdim addl %eax,%ecx 2252243789Sdim movl $0,%eax 2253243789Sdim adcl %eax,%eax 2254243789Sdim addl %edx,%ecx 2255243789Sdim adcl $0,%eax 2256243789Sdim decl %ebp 2257243789Sdim movl %ecx,(%ebx) 2258243789Sdim jz .L022aw_end 2259243789Sdim 2260243789Sdim movl 4(%esi),%ecx 2261243789Sdim movl 4(%edi),%edx 2262243789Sdim addl %eax,%ecx 2263243789Sdim movl $0,%eax 2264243789Sdim adcl %eax,%eax 2265243789Sdim addl %edx,%ecx 2266243789Sdim adcl $0,%eax 2267243789Sdim decl %ebp 2268243789Sdim movl %ecx,4(%ebx) 2269243789Sdim jz .L022aw_end 2270243789Sdim 2271243789Sdim movl 8(%esi),%ecx 2272243789Sdim movl 8(%edi),%edx 2273243789Sdim addl %eax,%ecx 2274243789Sdim movl $0,%eax 2275243789Sdim adcl %eax,%eax 2276243789Sdim addl %edx,%ecx 2277243789Sdim adcl $0,%eax 2278243789Sdim decl %ebp 2279243789Sdim movl %ecx,8(%ebx) 2280243789Sdim jz .L022aw_end 2281243789Sdim 2282243789Sdim movl 12(%esi),%ecx 2283243789Sdim movl 12(%edi),%edx 2284243789Sdim addl %eax,%ecx 2285243789Sdim movl $0,%eax 2286243789Sdim adcl %eax,%eax 2287243789Sdim addl %edx,%ecx 2288243789Sdim adcl $0,%eax 2289243789Sdim decl %ebp 2290243789Sdim movl %ecx,12(%ebx) 2291243789Sdim jz .L022aw_end 2292243789Sdim 2293243789Sdim movl 16(%esi),%ecx 2294243789Sdim movl 16(%edi),%edx 2295243789Sdim addl %eax,%ecx 2296243789Sdim movl $0,%eax 2297243789Sdim adcl %eax,%eax 2298243789Sdim addl %edx,%ecx 2299243789Sdim adcl $0,%eax 2300243789Sdim decl %ebp 2301243789Sdim movl %ecx,16(%ebx) 2302243789Sdim jz .L022aw_end 2303243789Sdim 2304243789Sdim movl 20(%esi),%ecx 2305243789Sdim movl 20(%edi),%edx 2306243789Sdim addl %eax,%ecx 2307243789Sdim movl $0,%eax 2308243789Sdim adcl %eax,%eax 2309243789Sdim addl %edx,%ecx 2310243789Sdim adcl $0,%eax 2311243789Sdim decl %ebp 2312243789Sdim movl %ecx,20(%ebx) 2313243789Sdim jz .L022aw_end 2314243789Sdim 2315243789Sdim movl 24(%esi),%ecx 2316243789Sdim movl 24(%edi),%edx 2317243789Sdim addl %eax,%ecx 2318243789Sdim movl $0,%eax 2319243789Sdim adcl %eax,%eax 2320243789Sdim addl %edx,%ecx 2321243789Sdim adcl $0,%eax 2322243789Sdim movl %ecx,24(%ebx) 2323243789Sdim.L022aw_end: 2324243789Sdim popl %edi 2325243789Sdim popl %esi 2326243789Sdim popl %ebx 2327243789Sdim popl %ebp 2328243789Sdim ret 2329243789Sdim.size bn_add_words,.-.L_bn_add_words_begin 2330243789Sdim.globl bn_sub_words 2331243789Sdim.type bn_sub_words,@function 2332243789Sdim.align 16 2333243789Sdimbn_sub_words: 2334243789Sdim.L_bn_sub_words_begin: 2335243789Sdim pushl %ebp 2336243789Sdim pushl %ebx 2337243789Sdim pushl %esi 2338243789Sdim pushl %edi 2339243789Sdim 2340243789Sdim movl 20(%esp),%ebx 2341243789Sdim movl 24(%esp),%esi 2342243789Sdim movl 28(%esp),%edi 2343243789Sdim movl 32(%esp),%ebp 2344243789Sdim xorl %eax,%eax 2345243789Sdim andl $4294967288,%ebp 2346243789Sdim jz .L023aw_finish 2347243789Sdim.L024aw_loop: 2348243789Sdim 2349243789Sdim movl (%esi),%ecx 2350243789Sdim movl (%edi),%edx 2351243789Sdim subl %eax,%ecx 2352243789Sdim movl $0,%eax 2353243789Sdim adcl %eax,%eax 2354243789Sdim subl %edx,%ecx 2355243789Sdim adcl $0,%eax 2356243789Sdim movl %ecx,(%ebx) 2357243789Sdim 2358243789Sdim movl 4(%esi),%ecx 2359243789Sdim movl 4(%edi),%edx 2360243789Sdim subl %eax,%ecx 2361243789Sdim movl $0,%eax 2362243789Sdim adcl %eax,%eax 2363243789Sdim subl %edx,%ecx 2364243789Sdim adcl $0,%eax 2365243789Sdim movl %ecx,4(%ebx) 2366243789Sdim 2367243789Sdim movl 8(%esi),%ecx 2368243789Sdim movl 8(%edi),%edx 2369243789Sdim subl %eax,%ecx 2370243789Sdim movl $0,%eax 2371243789Sdim adcl %eax,%eax 2372243789Sdim subl %edx,%ecx 2373243789Sdim adcl $0,%eax 2374243789Sdim movl %ecx,8(%ebx) 2375243789Sdim 2376243789Sdim movl 12(%esi),%ecx 2377243789Sdim movl 12(%edi),%edx 2378243789Sdim subl %eax,%ecx 2379243789Sdim movl $0,%eax 2380243789Sdim adcl %eax,%eax 2381243789Sdim subl %edx,%ecx 2382243789Sdim adcl $0,%eax 2383243789Sdim movl %ecx,12(%ebx) 2384243789Sdim 2385243789Sdim movl 16(%esi),%ecx 2386243789Sdim movl 16(%edi),%edx 2387243789Sdim subl %eax,%ecx 2388243789Sdim movl $0,%eax 2389243789Sdim adcl %eax,%eax 2390243789Sdim subl %edx,%ecx 2391243789Sdim adcl $0,%eax 2392243789Sdim movl %ecx,16(%ebx) 2393243789Sdim 2394243789Sdim movl 20(%esi),%ecx 2395243789Sdim movl 20(%edi),%edx 2396243789Sdim subl %eax,%ecx 2397243789Sdim movl $0,%eax 2398243789Sdim adcl %eax,%eax 2399243789Sdim subl %edx,%ecx 2400243789Sdim adcl $0,%eax 2401243789Sdim movl %ecx,20(%ebx) 2402243789Sdim 2403243789Sdim movl 24(%esi),%ecx 2404243789Sdim movl 24(%edi),%edx 2405243789Sdim subl %eax,%ecx 2406243789Sdim movl $0,%eax 2407243789Sdim adcl %eax,%eax 2408243789Sdim subl %edx,%ecx 2409243789Sdim adcl $0,%eax 2410243789Sdim movl %ecx,24(%ebx) 2411243789Sdim 2412243789Sdim movl 28(%esi),%ecx 2413243789Sdim movl 28(%edi),%edx 2414243789Sdim subl %eax,%ecx 2415243789Sdim movl $0,%eax 2416243789Sdim adcl %eax,%eax 2417243789Sdim subl %edx,%ecx 2418243789Sdim adcl $0,%eax 2419243789Sdim movl %ecx,28(%ebx) 2420243789Sdim 2421243789Sdim addl $32,%esi 2422243789Sdim addl $32,%edi 2423243789Sdim addl $32,%ebx 2424243789Sdim subl $8,%ebp 2425243789Sdim jnz .L024aw_loop 2426243789Sdim.L023aw_finish: 2427243789Sdim movl 32(%esp),%ebp 2428243789Sdim andl $7,%ebp 2429243789Sdim jz .L025aw_end 2430243789Sdim 2431243789Sdim movl (%esi),%ecx 2432243789Sdim movl (%edi),%edx 2433243789Sdim subl %eax,%ecx 2434243789Sdim movl $0,%eax 2435243789Sdim adcl %eax,%eax 2436243789Sdim subl %edx,%ecx 2437243789Sdim adcl $0,%eax 2438243789Sdim decl %ebp 2439243789Sdim movl %ecx,(%ebx) 2440243789Sdim jz .L025aw_end 2441243789Sdim 2442243789Sdim movl 4(%esi),%ecx 2443243789Sdim movl 4(%edi),%edx 2444243789Sdim subl %eax,%ecx 2445243789Sdim movl $0,%eax 2446243789Sdim adcl %eax,%eax 2447243789Sdim subl %edx,%ecx 2448243789Sdim adcl $0,%eax 2449243789Sdim decl %ebp 2450243789Sdim movl %ecx,4(%ebx) 2451243789Sdim jz .L025aw_end 2452243789Sdim 2453243789Sdim movl 8(%esi),%ecx 2454243789Sdim movl 8(%edi),%edx 2455243789Sdim subl %eax,%ecx 2456243789Sdim movl $0,%eax 2457243789Sdim adcl %eax,%eax 2458243789Sdim subl %edx,%ecx 2459243789Sdim adcl $0,%eax 2460243789Sdim decl %ebp 2461243789Sdim movl %ecx,8(%ebx) 2462243789Sdim jz .L025aw_end 2463243789Sdim 2464243789Sdim movl 12(%esi),%ecx 2465243789Sdim movl 12(%edi),%edx 2466243789Sdim subl %eax,%ecx 2467243789Sdim movl $0,%eax 2468243789Sdim adcl %eax,%eax 2469243789Sdim subl %edx,%ecx 2470243789Sdim adcl $0,%eax 2471243789Sdim decl %ebp 2472243789Sdim movl %ecx,12(%ebx) 2473243789Sdim jz .L025aw_end 2474243789Sdim 2475243789Sdim movl 16(%esi),%ecx 2476243789Sdim movl 16(%edi),%edx 2477243789Sdim subl %eax,%ecx 2478243789Sdim movl $0,%eax 2479243789Sdim adcl %eax,%eax 2480243789Sdim subl %edx,%ecx 2481243789Sdim adcl $0,%eax 2482243789Sdim decl %ebp 2483243789Sdim movl %ecx,16(%ebx) 2484243789Sdim jz .L025aw_end 2485243789Sdim 2486243789Sdim movl 20(%esi),%ecx 2487243789Sdim movl 20(%edi),%edx 2488243789Sdim subl %eax,%ecx 2489243789Sdim movl $0,%eax 2490243789Sdim adcl %eax,%eax 2491243789Sdim subl %edx,%ecx 2492243789Sdim adcl $0,%eax 2493243789Sdim decl %ebp 2494243789Sdim movl %ecx,20(%ebx) 2495243789Sdim jz .L025aw_end 2496243789Sdim 2497243789Sdim movl 24(%esi),%ecx 2498243789Sdim movl 24(%edi),%edx 2499243789Sdim subl %eax,%ecx 2500243789Sdim movl $0,%eax 2501243789Sdim adcl %eax,%eax 2502243789Sdim subl %edx,%ecx 2503243789Sdim adcl $0,%eax 2504243789Sdim movl %ecx,24(%ebx) 2505243789Sdim.L025aw_end: 2506243789Sdim popl %edi 2507243789Sdim popl %esi 2508243789Sdim popl %ebx 2509243789Sdim popl %ebp 2510243789Sdim ret 2511243789Sdim.size bn_sub_words,.-.L_bn_sub_words_begin 2512243789Sdim.globl bn_sub_part_words 2513243789Sdim.type bn_sub_part_words,@function 2514243789Sdim.align 16 2515243789Sdimbn_sub_part_words: 2516243789Sdim.L_bn_sub_part_words_begin: 2517243789Sdim pushl %ebp 2518243789Sdim pushl %ebx 2519243789Sdim pushl %esi 2520243789Sdim pushl %edi 2521243789Sdim 2522243789Sdim movl 20(%esp),%ebx 2523243789Sdim movl 24(%esp),%esi 2524243789Sdim movl 28(%esp),%edi 2525243789Sdim movl 32(%esp),%ebp 2526243789Sdim xorl %eax,%eax 2527243789Sdim andl $4294967288,%ebp 2528243789Sdim jz .L026aw_finish 2529243789Sdim.L027aw_loop: 2530243789Sdim 2531243789Sdim movl (%esi),%ecx 2532243789Sdim movl (%edi),%edx 2533243789Sdim subl %eax,%ecx 2534243789Sdim movl $0,%eax 2535243789Sdim adcl %eax,%eax 2536243789Sdim subl %edx,%ecx 2537243789Sdim adcl $0,%eax 2538243789Sdim movl %ecx,(%ebx) 2539243789Sdim 2540243789Sdim movl 4(%esi),%ecx 2541243789Sdim movl 4(%edi),%edx 2542243789Sdim subl %eax,%ecx 2543243789Sdim movl $0,%eax 2544243789Sdim adcl %eax,%eax 2545243789Sdim subl %edx,%ecx 2546243789Sdim adcl $0,%eax 2547243789Sdim movl %ecx,4(%ebx) 2548243789Sdim 2549243789Sdim movl 8(%esi),%ecx 2550243789Sdim movl 8(%edi),%edx 2551243789Sdim subl %eax,%ecx 2552243789Sdim movl $0,%eax 2553243789Sdim adcl %eax,%eax 2554243789Sdim subl %edx,%ecx 2555243789Sdim adcl $0,%eax 2556243789Sdim movl %ecx,8(%ebx) 2557243789Sdim 2558243789Sdim movl 12(%esi),%ecx 2559243789Sdim movl 12(%edi),%edx 2560243789Sdim subl %eax,%ecx 2561243789Sdim movl $0,%eax 2562243789Sdim adcl %eax,%eax 2563243789Sdim subl %edx,%ecx 2564243789Sdim adcl $0,%eax 2565243789Sdim movl %ecx,12(%ebx) 2566243789Sdim 2567243789Sdim movl 16(%esi),%ecx 2568243789Sdim movl 16(%edi),%edx 2569243789Sdim subl %eax,%ecx 2570243789Sdim movl $0,%eax 2571243789Sdim adcl %eax,%eax 2572243789Sdim subl %edx,%ecx 2573243789Sdim adcl $0,%eax 2574243789Sdim movl %ecx,16(%ebx) 2575243789Sdim 2576243789Sdim movl 20(%esi),%ecx 2577243789Sdim movl 20(%edi),%edx 2578243789Sdim subl %eax,%ecx 2579243789Sdim movl $0,%eax 2580243789Sdim adcl %eax,%eax 2581243789Sdim subl %edx,%ecx 2582243789Sdim adcl $0,%eax 2583243789Sdim movl %ecx,20(%ebx) 2584243789Sdim 2585243789Sdim movl 24(%esi),%ecx 2586243789Sdim movl 24(%edi),%edx 2587243789Sdim subl %eax,%ecx 2588243789Sdim movl $0,%eax 2589243789Sdim adcl %eax,%eax 2590243789Sdim subl %edx,%ecx 2591243789Sdim adcl $0,%eax 2592243789Sdim movl %ecx,24(%ebx) 2593243789Sdim 2594243789Sdim movl 28(%esi),%ecx 2595243789Sdim movl 28(%edi),%edx 2596243789Sdim subl %eax,%ecx 2597243789Sdim movl $0,%eax 2598243789Sdim adcl %eax,%eax 2599243789Sdim subl %edx,%ecx 2600243789Sdim adcl $0,%eax 2601243789Sdim movl %ecx,28(%ebx) 2602243789Sdim 2603243789Sdim addl $32,%esi 2604243789Sdim addl $32,%edi 2605243789Sdim addl $32,%ebx 2606243789Sdim subl $8,%ebp 2607243789Sdim jnz .L027aw_loop 2608243789Sdim.L026aw_finish: 2609243789Sdim movl 32(%esp),%ebp 2610243789Sdim andl $7,%ebp 2611243789Sdim jz .L028aw_end 2612243789Sdim 2613243789Sdim movl (%esi),%ecx 2614243789Sdim movl (%edi),%edx 2615243789Sdim subl %eax,%ecx 2616243789Sdim movl $0,%eax 2617243789Sdim adcl %eax,%eax 2618243789Sdim subl %edx,%ecx 2619243789Sdim adcl $0,%eax 2620243789Sdim movl %ecx,(%ebx) 2621243789Sdim addl $4,%esi 2622243789Sdim addl $4,%edi 2623243789Sdim addl $4,%ebx 2624243789Sdim decl %ebp 2625243789Sdim jz .L028aw_end 2626243789Sdim 2627243789Sdim movl (%esi),%ecx 2628243789Sdim movl (%edi),%edx 2629243789Sdim subl %eax,%ecx 2630243789Sdim movl $0,%eax 2631243789Sdim adcl %eax,%eax 2632243789Sdim subl %edx,%ecx 2633243789Sdim adcl $0,%eax 2634243789Sdim movl %ecx,(%ebx) 2635243789Sdim addl $4,%esi 2636243789Sdim addl $4,%edi 2637243789Sdim addl $4,%ebx 2638243789Sdim decl %ebp 2639243789Sdim jz .L028aw_end 2640243789Sdim 2641243789Sdim movl (%esi),%ecx 2642243789Sdim movl (%edi),%edx 2643243789Sdim subl %eax,%ecx 2644243789Sdim movl $0,%eax 2645243789Sdim adcl %eax,%eax 2646243789Sdim subl %edx,%ecx 2647243789Sdim adcl $0,%eax 2648243789Sdim movl %ecx,(%ebx) 2649243789Sdim addl $4,%esi 2650243789Sdim addl $4,%edi 2651243789Sdim addl $4,%ebx 2652243789Sdim decl %ebp 2653243789Sdim jz .L028aw_end 2654243789Sdim 2655243789Sdim movl (%esi),%ecx 2656243789Sdim movl (%edi),%edx 2657243789Sdim subl %eax,%ecx 2658243789Sdim movl $0,%eax 2659243789Sdim adcl %eax,%eax 2660243789Sdim subl %edx,%ecx 2661243789Sdim adcl $0,%eax 2662243789Sdim movl %ecx,(%ebx) 2663243789Sdim addl $4,%esi 2664243789Sdim addl $4,%edi 2665243789Sdim addl $4,%ebx 2666243789Sdim decl %ebp 2667243789Sdim jz .L028aw_end 2668243789Sdim 2669243789Sdim movl (%esi),%ecx 2670243789Sdim movl (%edi),%edx 2671243789Sdim subl %eax,%ecx 2672243789Sdim movl $0,%eax 2673243789Sdim adcl %eax,%eax 2674243789Sdim subl %edx,%ecx 2675243789Sdim adcl $0,%eax 2676243789Sdim movl %ecx,(%ebx) 2677243789Sdim addl $4,%esi 2678243789Sdim addl $4,%edi 2679243789Sdim addl $4,%ebx 2680243789Sdim decl %ebp 2681243789Sdim jz .L028aw_end 2682243789Sdim 2683243789Sdim movl (%esi),%ecx 2684243789Sdim movl (%edi),%edx 2685243789Sdim subl %eax,%ecx 2686243789Sdim movl $0,%eax 2687243789Sdim adcl %eax,%eax 2688243789Sdim subl %edx,%ecx 2689243789Sdim adcl $0,%eax 2690243789Sdim movl %ecx,(%ebx) 2691243789Sdim addl $4,%esi 2692243789Sdim addl $4,%edi 2693243789Sdim addl $4,%ebx 2694243789Sdim decl %ebp 2695243789Sdim jz .L028aw_end 2696243789Sdim 2697243789Sdim movl (%esi),%ecx 2698243789Sdim movl (%edi),%edx 2699243789Sdim subl %eax,%ecx 2700243789Sdim movl $0,%eax 2701243789Sdim adcl %eax,%eax 2702243789Sdim subl %edx,%ecx 2703243789Sdim adcl $0,%eax 2704243789Sdim movl %ecx,(%ebx) 2705243789Sdim addl $4,%esi 2706243789Sdim addl $4,%edi 2707243789Sdim addl $4,%ebx 2708243789Sdim.L028aw_end: 2709243789Sdim cmpl $0,36(%esp) 2710243789Sdim je .L029pw_end 2711243789Sdim movl 36(%esp),%ebp 2712243789Sdim cmpl $0,%ebp 2713243789Sdim je .L029pw_end 2714243789Sdim jge .L030pw_pos 2715243789Sdim 2716243789Sdim movl $0,%edx 2717243789Sdim subl %ebp,%edx 2718243789Sdim movl %edx,%ebp 2719243789Sdim andl $4294967288,%ebp 2720243789Sdim jz .L031pw_neg_finish 2721243789Sdim.L032pw_neg_loop: 2722243789Sdim 2723243789Sdim movl $0,%ecx 2724243789Sdim movl (%edi),%edx 2725243789Sdim subl %eax,%ecx 2726243789Sdim movl $0,%eax 2727243789Sdim adcl %eax,%eax 2728243789Sdim subl %edx,%ecx 2729243789Sdim adcl $0,%eax 2730243789Sdim movl %ecx,(%ebx) 2731243789Sdim 2732243789Sdim movl $0,%ecx 2733243789Sdim movl 4(%edi),%edx 2734243789Sdim subl %eax,%ecx 2735243789Sdim movl $0,%eax 2736243789Sdim adcl %eax,%eax 2737243789Sdim subl %edx,%ecx 2738243789Sdim adcl $0,%eax 2739243789Sdim movl %ecx,4(%ebx) 2740243789Sdim 2741243789Sdim movl $0,%ecx 2742243789Sdim movl 8(%edi),%edx 2743243789Sdim subl %eax,%ecx 2744243789Sdim movl $0,%eax 2745243789Sdim adcl %eax,%eax 2746243789Sdim subl %edx,%ecx 2747243789Sdim adcl $0,%eax 2748243789Sdim movl %ecx,8(%ebx) 2749243789Sdim 2750243789Sdim movl $0,%ecx 2751243789Sdim movl 12(%edi),%edx 2752243789Sdim subl %eax,%ecx 2753243789Sdim movl $0,%eax 2754243789Sdim adcl %eax,%eax 2755243789Sdim subl %edx,%ecx 2756243789Sdim adcl $0,%eax 2757243789Sdim movl %ecx,12(%ebx) 2758243789Sdim 2759243789Sdim movl $0,%ecx 2760243789Sdim movl 16(%edi),%edx 2761243789Sdim subl %eax,%ecx 2762243789Sdim movl $0,%eax 2763243789Sdim adcl %eax,%eax 2764243789Sdim subl %edx,%ecx 2765243789Sdim adcl $0,%eax 2766243789Sdim movl %ecx,16(%ebx) 2767243789Sdim 2768243789Sdim movl $0,%ecx 2769243789Sdim movl 20(%edi),%edx 2770243789Sdim subl %eax,%ecx 2771243789Sdim movl $0,%eax 2772243789Sdim adcl %eax,%eax 2773243789Sdim subl %edx,%ecx 2774243789Sdim adcl $0,%eax 2775243789Sdim movl %ecx,20(%ebx) 2776243789Sdim 2777243789Sdim movl $0,%ecx 2778243789Sdim movl 24(%edi),%edx 2779243789Sdim subl %eax,%ecx 2780243789Sdim movl $0,%eax 2781243789Sdim adcl %eax,%eax 2782243789Sdim subl %edx,%ecx 2783243789Sdim adcl $0,%eax 2784243789Sdim movl %ecx,24(%ebx) 2785243789Sdim 2786243789Sdim movl $0,%ecx 2787243789Sdim movl 28(%edi),%edx 2788243789Sdim subl %eax,%ecx 2789243789Sdim movl $0,%eax 2790243789Sdim adcl %eax,%eax 2791243789Sdim subl %edx,%ecx 2792243789Sdim adcl $0,%eax 2793243789Sdim movl %ecx,28(%ebx) 2794243789Sdim 2795243789Sdim addl $32,%edi 2796243789Sdim addl $32,%ebx 2797243789Sdim subl $8,%ebp 2798243789Sdim jnz .L032pw_neg_loop 2799243789Sdim.L031pw_neg_finish: 2800243789Sdim movl 36(%esp),%edx 2801243789Sdim movl $0,%ebp 2802243789Sdim subl %edx,%ebp 2803243789Sdim andl $7,%ebp 2804243789Sdim jz .L029pw_end 2805243789Sdim 2806243789Sdim movl $0,%ecx 2807243789Sdim movl (%edi),%edx 2808243789Sdim subl %eax,%ecx 2809243789Sdim movl $0,%eax 2810243789Sdim adcl %eax,%eax 2811243789Sdim subl %edx,%ecx 2812243789Sdim adcl $0,%eax 2813243789Sdim decl %ebp 2814243789Sdim movl %ecx,(%ebx) 2815243789Sdim jz .L029pw_end 2816243789Sdim 2817243789Sdim movl $0,%ecx 2818243789Sdim movl 4(%edi),%edx 2819243789Sdim subl %eax,%ecx 2820243789Sdim movl $0,%eax 2821243789Sdim adcl %eax,%eax 2822243789Sdim subl %edx,%ecx 2823243789Sdim adcl $0,%eax 2824243789Sdim decl %ebp 2825243789Sdim movl %ecx,4(%ebx) 2826243789Sdim jz .L029pw_end 2827243789Sdim 2828243789Sdim movl $0,%ecx 2829243789Sdim movl 8(%edi),%edx 2830243789Sdim subl %eax,%ecx 2831243789Sdim movl $0,%eax 2832243789Sdim adcl %eax,%eax 2833243789Sdim subl %edx,%ecx 2834243789Sdim adcl $0,%eax 2835243789Sdim decl %ebp 2836243789Sdim movl %ecx,8(%ebx) 2837243789Sdim jz .L029pw_end 2838243789Sdim 2839243789Sdim movl $0,%ecx 2840243789Sdim movl 12(%edi),%edx 2841243789Sdim subl %eax,%ecx 2842243789Sdim movl $0,%eax 2843243789Sdim adcl %eax,%eax 2844243789Sdim subl %edx,%ecx 2845243789Sdim adcl $0,%eax 2846243789Sdim decl %ebp 2847243789Sdim movl %ecx,12(%ebx) 2848243789Sdim jz .L029pw_end 2849243789Sdim 2850243789Sdim movl $0,%ecx 2851243789Sdim movl 16(%edi),%edx 2852243789Sdim subl %eax,%ecx 2853243789Sdim movl $0,%eax 2854243789Sdim adcl %eax,%eax 2855243789Sdim subl %edx,%ecx 2856243789Sdim adcl $0,%eax 2857243789Sdim decl %ebp 2858243789Sdim movl %ecx,16(%ebx) 2859243789Sdim jz .L029pw_end 2860243789Sdim 2861243789Sdim movl $0,%ecx 2862243789Sdim movl 20(%edi),%edx 2863243789Sdim subl %eax,%ecx 2864243789Sdim movl $0,%eax 2865243789Sdim adcl %eax,%eax 2866243789Sdim subl %edx,%ecx 2867243789Sdim adcl $0,%eax 2868243789Sdim decl %ebp 2869243789Sdim movl %ecx,20(%ebx) 2870243789Sdim jz .L029pw_end 2871243789Sdim 2872243789Sdim movl $0,%ecx 2873243789Sdim movl 24(%edi),%edx 2874243789Sdim subl %eax,%ecx 2875243789Sdim movl $0,%eax 2876243789Sdim adcl %eax,%eax 2877243789Sdim subl %edx,%ecx 2878243789Sdim adcl $0,%eax 2879243789Sdim movl %ecx,24(%ebx) 2880243789Sdim jmp .L029pw_end 2881243789Sdim.L030pw_pos: 2882243789Sdim andl $4294967288,%ebp 2883243789Sdim jz .L033pw_pos_finish 2884243789Sdim.L034pw_pos_loop: 2885243789Sdim 2886243789Sdim movl (%esi),%ecx 2887243789Sdim subl %eax,%ecx 2888243789Sdim movl %ecx,(%ebx) 2889243789Sdim jnc .L035pw_nc0 2890243789Sdim 2891243789Sdim movl 4(%esi),%ecx 2892243789Sdim subl %eax,%ecx 2893243789Sdim movl %ecx,4(%ebx) 2894243789Sdim jnc .L036pw_nc1 2895243789Sdim 2896243789Sdim movl 8(%esi),%ecx 2897243789Sdim subl %eax,%ecx 2898243789Sdim movl %ecx,8(%ebx) 2899243789Sdim jnc .L037pw_nc2 2900243789Sdim 2901243789Sdim movl 12(%esi),%ecx 2902243789Sdim subl %eax,%ecx 2903243789Sdim movl %ecx,12(%ebx) 2904243789Sdim jnc .L038pw_nc3 2905243789Sdim 2906243789Sdim movl 16(%esi),%ecx 2907243789Sdim subl %eax,%ecx 2908243789Sdim movl %ecx,16(%ebx) 2909243789Sdim jnc .L039pw_nc4 2910243789Sdim 2911243789Sdim movl 20(%esi),%ecx 2912243789Sdim subl %eax,%ecx 2913243789Sdim movl %ecx,20(%ebx) 2914243789Sdim jnc .L040pw_nc5 2915243789Sdim 2916243789Sdim movl 24(%esi),%ecx 2917243789Sdim subl %eax,%ecx 2918243789Sdim movl %ecx,24(%ebx) 2919243789Sdim jnc .L041pw_nc6 2920243789Sdim 2921243789Sdim movl 28(%esi),%ecx 2922243789Sdim subl %eax,%ecx 2923243789Sdim movl %ecx,28(%ebx) 2924243789Sdim jnc .L042pw_nc7 2925243789Sdim 2926243789Sdim addl $32,%esi 2927243789Sdim addl $32,%ebx 2928243789Sdim subl $8,%ebp 2929243789Sdim jnz .L034pw_pos_loop 2930243789Sdim.L033pw_pos_finish: 2931243789Sdim movl 36(%esp),%ebp 2932243789Sdim andl $7,%ebp 2933243789Sdim jz .L029pw_end 2934243789Sdim 2935243789Sdim movl (%esi),%ecx 2936243789Sdim subl %eax,%ecx 2937243789Sdim movl %ecx,(%ebx) 2938243789Sdim jnc .L043pw_tail_nc0 2939243789Sdim decl %ebp 2940243789Sdim jz .L029pw_end 2941243789Sdim 2942243789Sdim movl 4(%esi),%ecx 2943243789Sdim subl %eax,%ecx 2944243789Sdim movl %ecx,4(%ebx) 2945243789Sdim jnc .L044pw_tail_nc1 2946243789Sdim decl %ebp 2947243789Sdim jz .L029pw_end 2948243789Sdim 2949243789Sdim movl 8(%esi),%ecx 2950243789Sdim subl %eax,%ecx 2951243789Sdim movl %ecx,8(%ebx) 2952243789Sdim jnc .L045pw_tail_nc2 2953243789Sdim decl %ebp 2954243789Sdim jz .L029pw_end 2955243789Sdim 2956243789Sdim movl 12(%esi),%ecx 2957243789Sdim subl %eax,%ecx 2958243789Sdim movl %ecx,12(%ebx) 2959263508Sdim jnc .L046pw_tail_nc3 2960263508Sdim decl %ebp 2961263508Sdim jz .L029pw_end 2962263508Sdim 2963263508Sdim movl 16(%esi),%ecx 2964243789Sdim subl %eax,%ecx 2965243789Sdim movl %ecx,16(%ebx) 2966243789Sdim jnc .L047pw_tail_nc4 2967243789Sdim decl %ebp 2968243789Sdim jz .L029pw_end 2969243789Sdim 2970243789Sdim movl 20(%esi),%ecx 2971243789Sdim subl %eax,%ecx 2972243789Sdim movl %ecx,20(%ebx) 2973243789Sdim jnc .L048pw_tail_nc5 2974243789Sdim decl %ebp 2975243789Sdim jz .L029pw_end 2976243789Sdim 2977243789Sdim movl 24(%esi),%ecx 2978243789Sdim subl %eax,%ecx 2979243789Sdim movl %ecx,24(%ebx) 2980243789Sdim jnc .L049pw_tail_nc6 2981243789Sdim movl $1,%eax 2982243789Sdim jmp .L029pw_end 2983243789Sdim.L050pw_nc_loop: 2984243789Sdim movl (%esi),%ecx 2985263508Sdim movl %ecx,(%ebx) 2986243789Sdim.L035pw_nc0: 2987243789Sdim movl 4(%esi),%ecx 2988243789Sdim movl %ecx,4(%ebx) 2989243789Sdim.L036pw_nc1: 2990243789Sdim movl 8(%esi),%ecx 2991243789Sdim movl %ecx,8(%ebx) 2992243789Sdim.L037pw_nc2: 2993243789Sdim movl 12(%esi),%ecx 2994243789Sdim movl %ecx,12(%ebx) 2995243789Sdim.L038pw_nc3: 2996243789Sdim movl 16(%esi),%ecx 2997243789Sdim movl %ecx,16(%ebx) 2998243789Sdim.L039pw_nc4: 2999243789Sdim movl 20(%esi),%ecx 3000243789Sdim movl %ecx,20(%ebx) 3001243789Sdim.L040pw_nc5: 3002243789Sdim movl 24(%esi),%ecx 3003243789Sdim movl %ecx,24(%ebx) 3004243789Sdim.L041pw_nc6: 3005243789Sdim movl 28(%esi),%ecx 3006243789Sdim movl %ecx,28(%ebx) 3007243789Sdim.L042pw_nc7: 3008243789Sdim 3009243789Sdim addl $32,%esi 3010243789Sdim addl $32,%ebx 3011243789Sdim subl $8,%ebp 3012243789Sdim jnz .L050pw_nc_loop 3013243789Sdim movl 36(%esp),%ebp 3014243789Sdim andl $7,%ebp 3015243789Sdim jz .L051pw_nc_end 3016243789Sdim movl (%esi),%ecx 3017243789Sdim movl %ecx,(%ebx) 3018243789Sdim.L043pw_tail_nc0: 3019243789Sdim decl %ebp 3020243789Sdim jz .L051pw_nc_end 3021243789Sdim movl 4(%esi),%ecx 3022243789Sdim movl %ecx,4(%ebx) 3023243789Sdim.L044pw_tail_nc1: 3024243789Sdim decl %ebp 3025243789Sdim jz .L051pw_nc_end 3026243789Sdim movl 8(%esi),%ecx 3027243789Sdim movl %ecx,8(%ebx) 3028243789Sdim.L045pw_tail_nc2: 3029243789Sdim decl %ebp 3030243789Sdim jz .L051pw_nc_end 3031243789Sdim movl 12(%esi),%ecx 3032243789Sdim movl %ecx,12(%ebx) 3033243789Sdim.L046pw_tail_nc3: 3034243789Sdim decl %ebp 3035243789Sdim jz .L051pw_nc_end 3036243789Sdim movl 16(%esi),%ecx 3037243789Sdim movl %ecx,16(%ebx) 3038243789Sdim.L047pw_tail_nc4: 3039243789Sdim decl %ebp 3040243789Sdim jz .L051pw_nc_end 3041243789Sdim movl 20(%esi),%ecx 3042243789Sdim movl %ecx,20(%ebx) 3043243789Sdim.L048pw_tail_nc5: 3044243789Sdim decl %ebp 3045243789Sdim jz .L051pw_nc_end 3046243789Sdim movl 24(%esi),%ecx 3047243789Sdim movl %ecx,24(%ebx) 3048243789Sdim.L049pw_tail_nc6: 3049243789Sdim.L051pw_nc_end: 3050243789Sdim movl $0,%eax 3051243789Sdim.L029pw_end: 3052243789Sdim popl %edi 3053243789Sdim popl %esi 3054243789Sdim popl %ebx 3055243789Sdim popl %ebp 3056243789Sdim ret 3057243789Sdim.size bn_sub_part_words,.-.L_bn_sub_part_words_begin 3058243789Sdim.comm OPENSSL_ia32cap_P,8,4 3059243789Sdim#endif 3060243789Sdim