VirtualBox

source: vbox/trunk/src/libs/openssl-1.1.1f/crypto/genasm-macosx/bn-586.S@ 83531

Last change on this file since 83531 was 83531, checked in by vboxsync, 5 years ago

setting svn:sync-process=export for openssl-1.1.1f, all files except tests

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