OLD | NEW |
1 #if defined(__i386__) | 1 #if defined(__i386__) |
2 .file "chacha-x86.S" | 2 .file "chacha-x86.S" |
3 .text | 3 .text |
4 .globl _ChaCha20_ctr32 | 4 .globl _ChaCha20_ctr32 |
5 .private_extern _ChaCha20_ctr32 | 5 .private_extern _ChaCha20_ctr32 |
6 .align 4 | 6 .align 4 |
7 _ChaCha20_ctr32: | 7 _ChaCha20_ctr32: |
8 L_ChaCha20_ctr32_begin: | 8 L_ChaCha20_ctr32_begin: |
9 pushl %ebp | 9 pushl %ebp |
10 pushl %ebx | 10 pushl %ebx |
(...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
253 addl 112(%esp),%edx | 253 addl 112(%esp),%edx |
254 addl 120(%esp),%edi | 254 addl 120(%esp),%edi |
255 xorl (%ebx),%eax | 255 xorl (%ebx),%eax |
256 xorl 16(%ebx),%ebp | 256 xorl 16(%ebx),%ebp |
257 movl %eax,(%esp) | 257 movl %eax,(%esp) |
258 movl 152(%esp),%eax | 258 movl 152(%esp),%eax |
259 xorl 32(%ebx),%ecx | 259 xorl 32(%ebx),%ecx |
260 xorl 36(%ebx),%esi | 260 xorl 36(%ebx),%esi |
261 xorl 48(%ebx),%edx | 261 xorl 48(%ebx),%edx |
262 xorl 56(%ebx),%edi | 262 xorl 56(%ebx),%edi |
263 » movl» %ebp,16(%esp) | 263 » movl» %ebp,16(%eax) |
264 » movl» (%esp),%ebp | 264 » movl» %ecx,32(%eax) |
265 » movl» %ecx,32(%esp) | 265 » movl» %esi,36(%eax) |
266 » movl» %esi,36(%esp) | 266 » movl» %edx,48(%eax) |
267 » movl» %edx,48(%esp) | 267 » movl» %edi,56(%eax) |
268 » movl» %edi,56(%esp) | |
269 » movl» %ebp,(%eax) | |
270 movl 4(%esp),%ebp | 268 movl 4(%esp),%ebp |
271 movl 8(%esp),%ecx | 269 movl 8(%esp),%ecx |
272 movl 12(%esp),%esi | 270 movl 12(%esp),%esi |
273 movl 20(%esp),%edx | 271 movl 20(%esp),%edx |
274 movl 24(%esp),%edi | 272 movl 24(%esp),%edi |
275 addl $857760878,%ebp | 273 addl $857760878,%ebp |
276 addl $2036477234,%ecx | 274 addl $2036477234,%ecx |
277 addl $1797285236,%esi | 275 addl $1797285236,%esi |
278 addl 84(%esp),%edx | 276 addl 84(%esp),%edx |
279 addl 88(%esp),%edi | 277 addl 88(%esp),%edi |
280 xorl 4(%ebx),%ebp | 278 xorl 4(%ebx),%ebp |
281 xorl 8(%ebx),%ecx | 279 xorl 8(%ebx),%ecx |
282 xorl 12(%ebx),%esi | 280 xorl 12(%ebx),%esi |
283 xorl 20(%ebx),%edx | 281 xorl 20(%ebx),%edx |
284 xorl 24(%ebx),%edi | 282 xorl 24(%ebx),%edi |
285 movl %ebp,4(%eax) | 283 movl %ebp,4(%eax) |
286 movl 16(%esp),%ebp | |
287 movl %ecx,8(%eax) | 284 movl %ecx,8(%eax) |
288 movl %esi,12(%eax) | 285 movl %esi,12(%eax) |
289 movl %ebp,16(%eax) | |
290 movl %edx,20(%eax) | 286 movl %edx,20(%eax) |
291 movl %edi,24(%eax) | 287 movl %edi,24(%eax) |
292 » movl» 28(%esp),%ecx | 288 » movl» 28(%esp),%ebp |
293 » movl» 32(%esp),%edx | 289 » movl» 40(%esp),%ecx |
294 » movl» 36(%esp),%edi | |
295 » addl» 92(%esp),%ecx | |
296 » movl» 40(%esp),%ebp | |
297 » xorl» 28(%ebx),%ecx | |
298 movl 44(%esp),%esi | 290 movl 44(%esp),%esi |
299 movl %ecx,28(%eax) | |
300 movl %edx,32(%eax) | |
301 movl %edi,36(%eax) | |
302 addl 104(%esp),%ebp | |
303 addl 108(%esp),%esi | |
304 xorl 40(%ebx),%ebp | |
305 xorl 44(%ebx),%esi | |
306 movl %ebp,40(%eax) | |
307 movl %esi,44(%eax) | |
308 movl 48(%esp),%ecx | |
309 movl 56(%esp),%esi | |
310 movl 52(%esp),%edx | 291 movl 52(%esp),%edx |
311 movl 60(%esp),%edi | 292 movl 60(%esp),%edi |
| 293 addl 92(%esp),%ebp |
| 294 addl 104(%esp),%ecx |
| 295 addl 108(%esp),%esi |
312 addl 116(%esp),%edx | 296 addl 116(%esp),%edx |
313 addl 124(%esp),%edi | 297 addl 124(%esp),%edi |
| 298 xorl 28(%ebx),%ebp |
| 299 xorl 40(%ebx),%ecx |
| 300 xorl 44(%ebx),%esi |
314 xorl 52(%ebx),%edx | 301 xorl 52(%ebx),%edx |
315 xorl 60(%ebx),%edi | 302 xorl 60(%ebx),%edi |
316 leal 64(%ebx),%ebx | 303 leal 64(%ebx),%ebx |
317 » movl» %ecx,48(%eax) | 304 » movl» %ebp,28(%eax) |
| 305 » movl» (%esp),%ebp |
| 306 » movl» %ecx,40(%eax) |
318 movl 160(%esp),%ecx | 307 movl 160(%esp),%ecx |
| 308 movl %esi,44(%eax) |
319 movl %edx,52(%eax) | 309 movl %edx,52(%eax) |
320 movl %esi,56(%eax) | |
321 movl %edi,60(%eax) | 310 movl %edi,60(%eax) |
| 311 movl %ebp,(%eax) |
322 leal 64(%eax),%eax | 312 leal 64(%eax),%eax |
323 subl $64,%ecx | 313 subl $64,%ecx |
324 jnz L003outer_loop | 314 jnz L003outer_loop |
325 jmp L006done | 315 jmp L006done |
326 L005tail: | 316 L005tail: |
327 addl 112(%esp),%edx | 317 addl 112(%esp),%edx |
328 addl 120(%esp),%edi | 318 addl 120(%esp),%edi |
329 movl %eax,(%esp) | 319 movl %eax,(%esp) |
330 movl %ebp,16(%esp) | 320 movl %ebp,16(%esp) |
331 movl %ecx,32(%esp) | 321 movl %ecx,32(%esp) |
(...skipping 373 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
705 movdqa %xmm2,%xmm7 | 695 movdqa %xmm2,%xmm7 |
706 punpckldq %xmm3,%xmm2 | 696 punpckldq %xmm3,%xmm2 |
707 punpckhdq %xmm1,%xmm6 | 697 punpckhdq %xmm1,%xmm6 |
708 punpckhdq %xmm3,%xmm7 | 698 punpckhdq %xmm3,%xmm7 |
709 movdqa %xmm0,%xmm1 | 699 movdqa %xmm0,%xmm1 |
710 punpcklqdq %xmm2,%xmm0 | 700 punpcklqdq %xmm2,%xmm0 |
711 movdqa %xmm6,%xmm3 | 701 movdqa %xmm6,%xmm3 |
712 punpcklqdq %xmm7,%xmm6 | 702 punpcklqdq %xmm7,%xmm6 |
713 punpckhqdq %xmm2,%xmm1 | 703 punpckhqdq %xmm2,%xmm1 |
714 punpckhqdq %xmm7,%xmm3 | 704 punpckhqdq %xmm7,%xmm3 |
715 » movdqa» %xmm0,-128(%ebx) | 705 » movdqu» -128(%esi),%xmm4 |
| 706 » movdqu» -64(%esi),%xmm5 |
| 707 » movdqu» (%esi),%xmm2 |
| 708 » movdqu» 64(%esi),%xmm7 |
| 709 » leal» 16(%esi),%esi |
| 710 » pxor» %xmm0,%xmm4 |
716 movdqa -64(%ebx),%xmm0 | 711 movdqa -64(%ebx),%xmm0 |
717 » movdqa» %xmm1,-112(%ebx) | 712 » pxor» %xmm1,%xmm5 |
718 » movdqa» %xmm6,-96(%ebx) | |
719 » movdqa» %xmm3,-80(%ebx) | |
720 movdqa -48(%ebx),%xmm1 | 713 movdqa -48(%ebx),%xmm1 |
| 714 pxor %xmm2,%xmm6 |
721 movdqa -32(%ebx),%xmm2 | 715 movdqa -32(%ebx),%xmm2 |
| 716 pxor %xmm3,%xmm7 |
722 movdqa -16(%ebx),%xmm3 | 717 movdqa -16(%ebx),%xmm3 |
| 718 movdqu %xmm4,-128(%edi) |
| 719 movdqu %xmm5,-64(%edi) |
| 720 movdqu %xmm6,(%edi) |
| 721 movdqu %xmm7,64(%edi) |
| 722 leal 16(%edi),%edi |
723 paddd -64(%ebp),%xmm0 | 723 paddd -64(%ebp),%xmm0 |
724 paddd -48(%ebp),%xmm1 | 724 paddd -48(%ebp),%xmm1 |
725 paddd -32(%ebp),%xmm2 | 725 paddd -32(%ebp),%xmm2 |
726 paddd -16(%ebp),%xmm3 | 726 paddd -16(%ebp),%xmm3 |
727 movdqa %xmm0,%xmm6 | 727 movdqa %xmm0,%xmm6 |
728 punpckldq %xmm1,%xmm0 | 728 punpckldq %xmm1,%xmm0 |
729 movdqa %xmm2,%xmm7 | 729 movdqa %xmm2,%xmm7 |
730 punpckldq %xmm3,%xmm2 | 730 punpckldq %xmm3,%xmm2 |
731 punpckhdq %xmm1,%xmm6 | 731 punpckhdq %xmm1,%xmm6 |
732 punpckhdq %xmm3,%xmm7 | 732 punpckhdq %xmm3,%xmm7 |
733 movdqa %xmm0,%xmm1 | 733 movdqa %xmm0,%xmm1 |
734 punpcklqdq %xmm2,%xmm0 | 734 punpcklqdq %xmm2,%xmm0 |
735 movdqa %xmm6,%xmm3 | 735 movdqa %xmm6,%xmm3 |
736 punpcklqdq %xmm7,%xmm6 | 736 punpcklqdq %xmm7,%xmm6 |
737 punpckhqdq %xmm2,%xmm1 | 737 punpckhqdq %xmm2,%xmm1 |
738 punpckhqdq %xmm7,%xmm3 | 738 punpckhqdq %xmm7,%xmm3 |
739 » movdqa» %xmm0,-64(%ebx) | 739 » movdqu» -128(%esi),%xmm4 |
| 740 » movdqu» -64(%esi),%xmm5 |
| 741 » movdqu» (%esi),%xmm2 |
| 742 » movdqu» 64(%esi),%xmm7 |
| 743 » leal» 16(%esi),%esi |
| 744 » pxor» %xmm0,%xmm4 |
740 movdqa (%ebx),%xmm0 | 745 movdqa (%ebx),%xmm0 |
741 » movdqa» %xmm1,-48(%ebx) | 746 » pxor» %xmm1,%xmm5 |
742 » movdqa» %xmm6,-32(%ebx) | |
743 » movdqa» %xmm3,-16(%ebx) | |
744 movdqa 16(%ebx),%xmm1 | 747 movdqa 16(%ebx),%xmm1 |
| 748 pxor %xmm2,%xmm6 |
745 movdqa 32(%ebx),%xmm2 | 749 movdqa 32(%ebx),%xmm2 |
| 750 pxor %xmm3,%xmm7 |
746 movdqa 48(%ebx),%xmm3 | 751 movdqa 48(%ebx),%xmm3 |
| 752 movdqu %xmm4,-128(%edi) |
| 753 movdqu %xmm5,-64(%edi) |
| 754 movdqu %xmm6,(%edi) |
| 755 movdqu %xmm7,64(%edi) |
| 756 leal 16(%edi),%edi |
747 paddd (%ebp),%xmm0 | 757 paddd (%ebp),%xmm0 |
748 paddd 16(%ebp),%xmm1 | 758 paddd 16(%ebp),%xmm1 |
749 paddd 32(%ebp),%xmm2 | 759 paddd 32(%ebp),%xmm2 |
750 paddd 48(%ebp),%xmm3 | 760 paddd 48(%ebp),%xmm3 |
751 movdqa %xmm0,%xmm6 | 761 movdqa %xmm0,%xmm6 |
752 punpckldq %xmm1,%xmm0 | 762 punpckldq %xmm1,%xmm0 |
753 movdqa %xmm2,%xmm7 | 763 movdqa %xmm2,%xmm7 |
754 punpckldq %xmm3,%xmm2 | 764 punpckldq %xmm3,%xmm2 |
755 punpckhdq %xmm1,%xmm6 | 765 punpckhdq %xmm1,%xmm6 |
756 punpckhdq %xmm3,%xmm7 | 766 punpckhdq %xmm3,%xmm7 |
757 movdqa %xmm0,%xmm1 | 767 movdqa %xmm0,%xmm1 |
758 punpcklqdq %xmm2,%xmm0 | 768 punpcklqdq %xmm2,%xmm0 |
759 movdqa %xmm6,%xmm3 | 769 movdqa %xmm6,%xmm3 |
760 punpcklqdq %xmm7,%xmm6 | 770 punpcklqdq %xmm7,%xmm6 |
761 punpckhqdq %xmm2,%xmm1 | 771 punpckhqdq %xmm2,%xmm1 |
762 punpckhqdq %xmm7,%xmm3 | 772 punpckhqdq %xmm7,%xmm3 |
763 » movdqa» %xmm0,(%ebx) | 773 » movdqu» -128(%esi),%xmm4 |
| 774 » movdqu» -64(%esi),%xmm5 |
| 775 » movdqu» (%esi),%xmm2 |
| 776 » movdqu» 64(%esi),%xmm7 |
| 777 » leal» 16(%esi),%esi |
| 778 » pxor» %xmm0,%xmm4 |
764 movdqa 64(%ebx),%xmm0 | 779 movdqa 64(%ebx),%xmm0 |
765 » movdqa» %xmm1,16(%ebx) | 780 » pxor» %xmm1,%xmm5 |
766 » movdqa» %xmm6,32(%ebx) | |
767 » movdqa» %xmm3,48(%ebx) | |
768 movdqa 80(%ebx),%xmm1 | 781 movdqa 80(%ebx),%xmm1 |
| 782 pxor %xmm2,%xmm6 |
769 movdqa 96(%ebx),%xmm2 | 783 movdqa 96(%ebx),%xmm2 |
| 784 pxor %xmm3,%xmm7 |
770 movdqa 112(%ebx),%xmm3 | 785 movdqa 112(%ebx),%xmm3 |
| 786 movdqu %xmm4,-128(%edi) |
| 787 movdqu %xmm5,-64(%edi) |
| 788 movdqu %xmm6,(%edi) |
| 789 movdqu %xmm7,64(%edi) |
| 790 leal 16(%edi),%edi |
771 paddd 64(%ebp),%xmm0 | 791 paddd 64(%ebp),%xmm0 |
772 paddd 80(%ebp),%xmm1 | 792 paddd 80(%ebp),%xmm1 |
773 paddd 96(%ebp),%xmm2 | 793 paddd 96(%ebp),%xmm2 |
774 paddd 112(%ebp),%xmm3 | 794 paddd 112(%ebp),%xmm3 |
775 movdqa %xmm0,%xmm6 | 795 movdqa %xmm0,%xmm6 |
776 punpckldq %xmm1,%xmm0 | 796 punpckldq %xmm1,%xmm0 |
777 movdqa %xmm2,%xmm7 | 797 movdqa %xmm2,%xmm7 |
778 punpckldq %xmm3,%xmm2 | 798 punpckldq %xmm3,%xmm2 |
779 punpckhdq %xmm1,%xmm6 | 799 punpckhdq %xmm1,%xmm6 |
780 punpckhdq %xmm3,%xmm7 | 800 punpckhdq %xmm3,%xmm7 |
781 movdqa %xmm0,%xmm1 | 801 movdqa %xmm0,%xmm1 |
782 punpcklqdq %xmm2,%xmm0 | 802 punpcklqdq %xmm2,%xmm0 |
783 movdqa %xmm6,%xmm3 | 803 movdqa %xmm6,%xmm3 |
784 punpcklqdq %xmm7,%xmm6 | 804 punpcklqdq %xmm7,%xmm6 |
785 punpckhqdq %xmm2,%xmm1 | 805 punpckhqdq %xmm2,%xmm1 |
786 punpckhqdq %xmm7,%xmm3 | 806 punpckhqdq %xmm7,%xmm3 |
787 » movdqa» %xmm0,64(%ebx) | 807 » movdqu» -128(%esi),%xmm4 |
788 » movdqa» %xmm1,80(%ebx) | 808 » movdqu» -64(%esi),%xmm5 |
789 » movdqa» %xmm6,96(%ebx) | 809 » movdqu» (%esi),%xmm2 |
790 » movdqa» %xmm3,112(%ebx) | 810 » movdqu» 64(%esi),%xmm7 |
791 » movdqu» -128(%esi),%xmm0 | 811 » leal» 208(%esi),%esi |
792 » movdqu» -112(%esi),%xmm1 | 812 » pxor» %xmm0,%xmm4 |
793 » movdqu» -96(%esi),%xmm2 | 813 » pxor» %xmm1,%xmm5 |
794 » movdqu» -80(%esi),%xmm3 | 814 » pxor» %xmm2,%xmm6 |
795 » pxor» -128(%ebx),%xmm0 | 815 » pxor» %xmm3,%xmm7 |
796 » pxor» -64(%ebx),%xmm1 | 816 » movdqu» %xmm4,-128(%edi) |
797 » pxor» (%ebx),%xmm2 | 817 » movdqu» %xmm5,-64(%edi) |
798 » pxor» 64(%ebx),%xmm3 | 818 » movdqu» %xmm6,(%edi) |
799 » movdqu» %xmm0,-128(%edi) | 819 » movdqu» %xmm7,64(%edi) |
800 » movdqu» %xmm1,-112(%edi) | 820 » leal» 208(%edi),%edi |
801 » movdqu» %xmm2,-96(%edi) | |
802 » movdqu» %xmm3,-80(%edi) | |
803 » movdqu» -64(%esi),%xmm0 | |
804 » movdqu» -48(%esi),%xmm1 | |
805 » movdqu» -32(%esi),%xmm2 | |
806 » movdqu» -16(%esi),%xmm3 | |
807 » pxor» -112(%ebx),%xmm0 | |
808 » pxor» -48(%ebx),%xmm1 | |
809 » pxor» 16(%ebx),%xmm2 | |
810 » pxor» 80(%ebx),%xmm3 | |
811 » movdqu» %xmm0,-64(%edi) | |
812 » movdqu» %xmm1,-48(%edi) | |
813 » movdqu» %xmm2,-32(%edi) | |
814 » movdqu» %xmm3,-16(%edi) | |
815 » movdqu» (%esi),%xmm0 | |
816 » movdqu» 16(%esi),%xmm1 | |
817 » movdqu» 32(%esi),%xmm2 | |
818 » movdqu» 48(%esi),%xmm3 | |
819 » pxor» -96(%ebx),%xmm0 | |
820 » pxor» -32(%ebx),%xmm1 | |
821 » pxor» 32(%ebx),%xmm2 | |
822 » pxor» 96(%ebx),%xmm3 | |
823 » movdqu» %xmm0,(%edi) | |
824 » movdqu» %xmm1,16(%edi) | |
825 » movdqu» %xmm2,32(%edi) | |
826 » movdqu» %xmm3,48(%edi) | |
827 » movdqu» 64(%esi),%xmm0 | |
828 » movdqu» 80(%esi),%xmm1 | |
829 » movdqu» 96(%esi),%xmm2 | |
830 » movdqu» 112(%esi),%xmm3 | |
831 » pxor» -80(%ebx),%xmm0 | |
832 » pxor» -16(%ebx),%xmm1 | |
833 » pxor» 48(%ebx),%xmm2 | |
834 » pxor» 112(%ebx),%xmm3 | |
835 » movdqu» %xmm0,64(%edi) | |
836 » movdqu» %xmm1,80(%edi) | |
837 » movdqu» %xmm2,96(%edi) | |
838 » movdqu» %xmm3,112(%edi) | |
839 » leal» 256(%esi),%esi | |
840 » leal» 256(%edi),%edi | |
841 subl $256,%ecx | 821 subl $256,%ecx |
842 jnc L009outer_loop | 822 jnc L009outer_loop |
843 addl $256,%ecx | 823 addl $256,%ecx |
844 jz L011done | 824 jz L011done |
845 movl 520(%esp),%ebx | 825 movl 520(%esp),%ebx |
846 leal -128(%esi),%esi | 826 leal -128(%esi),%esi |
847 movl 516(%esp),%edx | 827 movl 516(%esp),%edx |
848 leal -128(%edi),%edi | 828 leal -128(%edi),%edi |
849 movd 64(%ebp),%xmm2 | 829 movd 64(%ebp),%xmm2 |
850 movdqu (%ebx),%xmm3 | 830 movdqu (%ebx),%xmm3 |
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
980 .align 6,0x90 | 960 .align 6,0x90 |
981 .byte 67,104,97,67,104,97,50,48,32,102,111,114,32,120,56,54 | 961 .byte 67,104,97,67,104,97,50,48,32,102,111,114,32,120,56,54 |
982 .byte 44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32 | 962 .byte 44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32 |
983 .byte 60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111 | 963 .byte 60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111 |
984 .byte 114,103,62,0 | 964 .byte 114,103,62,0 |
985 .section __IMPORT,__pointers,non_lazy_symbol_pointers | 965 .section __IMPORT,__pointers,non_lazy_symbol_pointers |
986 L_OPENSSL_ia32cap_P$non_lazy_ptr: | 966 L_OPENSSL_ia32cap_P$non_lazy_ptr: |
987 .indirect_symbol _OPENSSL_ia32cap_P | 967 .indirect_symbol _OPENSSL_ia32cap_P |
988 .long 0 | 968 .long 0 |
989 #endif | 969 #endif |
OLD | NEW |