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