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

Side by Side Diff: third_party/boringssl/linux-x86/crypto/bn/bn-586.S

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

Powered by Google App Engine
This is Rietveld 408576698