VirtualBox

source: vbox/trunk/src/libs/openssl-3.0.7/crypto/genasm-macosx/bn-586.S@ 97371

最後變更 在這個檔案從97371是 94083,由 vboxsync 提交於 3 年 前

libs/openssl-3.0.1: Recreate asm files, bugref:10128

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

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