Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(224)

Side by Side Diff: openssl/crypto/bn/asm/bn-586-mac.S

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

Powered by Google App Engine
This is Rietveld 408576698