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