VirtualBox

source: vbox/trunk/src/libs/openssl-3.0.9/crypto/genasm-elf/bn-586.S@ 100942

Last change on this file since 100942 was 97372, checked in by vboxsync, 2 years ago

libs: Switch to openssl-3.0.7, bugref:10317

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

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette