2 /* Do not modify. This file is auto-generated from chacha-x86.pl. */
6 .type ChaCha20_ctr32,@function
9 .L_ChaCha20_ctr32_begin:
20 leal OPENSSL_ia32cap_P-.Lpic_point(%eax),%ebp
21 testl $16777216,(%ebp)
63 movl $857760878,4(%esp)
64 movl $2036477234,8(%esp)
65 movl $1797285236,12(%esp)
247 addl $1634760805,%eax
275 addl $2036477234,%ecx
276 addl $1797285236,%esi
332 addl $2036477234,%ecx
333 addl $1797285236,%esi
362 movb (%esi,%ebp,1),%al
363 movb (%esp,%esi,1),%dl
366 movb %al,-1(%ecx,%esi,1)
377 .size ChaCha20_ctr32,.-.L_ChaCha20_ctr32_begin
378 .globl ChaCha20_ssse3
379 .type ChaCha20_ssse3,@function
382 .L_ChaCha20_ssse3_begin:
399 leal .Lssse3_data-.Lpic_point(%eax),%eax
402 movdqa 32(%eax),%xmm0
404 movdqu 16(%edx),%xmm2
406 movdqa 16(%eax),%xmm7
409 movdqa %xmm1,16(%esp)
410 movdqa %xmm2,32(%esp)
411 movdqa %xmm3,48(%esp)
416 movdqa 80(%eax),%xmm3
418 movdqa 16(%esp),%xmm1
419 movdqa 32(%esp),%xmm2
422 movdqa %xmm3,48(%esp)
428 .byte 102,15,56,0,222
437 .byte 102,15,56,0,223
444 pshufd $78,%xmm2,%xmm2
445 pshufd $57,%xmm1,%xmm1
446 pshufd $147,%xmm3,%xmm3
450 .byte 102,15,56,0,222
459 .byte 102,15,56,0,223
466 pshufd $78,%xmm2,%xmm2
467 pshufd $147,%xmm1,%xmm1
468 pshufd $57,%xmm3,%xmm3
478 movdqu 16(%esi),%xmm5
480 movdqu 32(%esi),%xmm4
482 movdqu 48(%esi),%xmm5
487 movdqu %xmm1,16(%edi)
488 movdqu %xmm2,32(%edi)
489 movdqu %xmm3,48(%edi)
496 movdqa %xmm1,16(%esp)
497 movdqa %xmm2,32(%esp)
498 movdqa %xmm3,48(%esp)
503 movb (%esp,%ebp,1),%al
504 movb (%esi,%ebp,1),%dl
507 movb %al,-1(%edi,%ebp,1)
517 .size ChaCha20_ssse3,.-.L_ChaCha20_ssse3_begin
520 .byte 2,3,0,1,6,7,4,5,10,11,8,9,14,15,12,13
521 .byte 3,0,1,2,7,4,5,6,11,8,9,10,15,12,13,14
522 .long 1634760805,857760878,2036477234,1797285236
529 .byte 67,104,97,67,104,97,50,48,32,102,111,114,32,120,56,54
530 .byte 44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32
531 .byte 60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111
534 .type ChaCha20_xop,@function
537 .L_ChaCha20_xop_begin:
553 leal .Lssse3_data-.Lpic_point(%eax),%eax
562 vpshufd $0,%xmm3,%xmm0
563 vpshufd $85,%xmm3,%xmm1
564 vpshufd $170,%xmm3,%xmm2
565 vpshufd $255,%xmm3,%xmm3
566 vpaddd 48(%eax),%xmm0,%xmm0
567 vpshufd $0,%xmm7,%xmm4
568 vpshufd $85,%xmm7,%xmm5
569 vpsubd 64(%eax),%xmm0,%xmm0
570 vpshufd $170,%xmm7,%xmm6
571 vpshufd $255,%xmm7,%xmm7
572 vmovdqa %xmm0,64(%ebp)
573 vmovdqa %xmm1,80(%ebp)
574 vmovdqa %xmm2,96(%ebp)
575 vmovdqa %xmm3,112(%ebp)
576 vmovdqu 16(%edx),%xmm3
577 vmovdqa %xmm4,-64(%ebp)
578 vmovdqa %xmm5,-48(%ebp)
579 vmovdqa %xmm6,-32(%ebp)
580 vmovdqa %xmm7,-16(%ebp)
581 vmovdqa 32(%eax),%xmm7
583 vpshufd $0,%xmm3,%xmm0
584 vpshufd $85,%xmm3,%xmm1
585 vpshufd $170,%xmm3,%xmm2
586 vpshufd $255,%xmm3,%xmm3
587 vpshufd $0,%xmm7,%xmm4
588 vpshufd $85,%xmm7,%xmm5
589 vpshufd $170,%xmm7,%xmm6
590 vpshufd $255,%xmm7,%xmm7
592 vmovdqa %xmm1,16(%ebp)
593 vmovdqa %xmm2,32(%ebp)
594 vmovdqa %xmm3,48(%ebp)
595 vmovdqa %xmm4,-128(%ebp)
596 vmovdqa %xmm5,-112(%ebp)
597 vmovdqa %xmm6,-96(%ebp)
598 vmovdqa %xmm7,-80(%ebp)
604 vmovdqa -112(%ebp),%xmm1
605 vmovdqa -96(%ebp),%xmm2
606 vmovdqa -80(%ebp),%xmm3
607 vmovdqa -48(%ebp),%xmm5
608 vmovdqa -32(%ebp),%xmm6
609 vmovdqa -16(%ebp),%xmm7
610 vmovdqa %xmm1,-112(%ebx)
611 vmovdqa %xmm2,-96(%ebx)
612 vmovdqa %xmm3,-80(%ebx)
613 vmovdqa %xmm5,-48(%ebx)
614 vmovdqa %xmm6,-32(%ebx)
615 vmovdqa %xmm7,-16(%ebx)
616 vmovdqa 32(%ebp),%xmm2
617 vmovdqa 48(%ebp),%xmm3
618 vmovdqa 64(%ebp),%xmm4
619 vmovdqa 80(%ebp),%xmm5
620 vmovdqa 96(%ebp),%xmm6
621 vmovdqa 112(%ebp),%xmm7
622 vpaddd 64(%eax),%xmm4,%xmm4
623 vmovdqa %xmm2,32(%ebx)
624 vmovdqa %xmm3,48(%ebx)
625 vmovdqa %xmm4,64(%ebx)
626 vmovdqa %xmm5,80(%ebx)
627 vmovdqa %xmm6,96(%ebx)
628 vmovdqa %xmm7,112(%ebx)
629 vmovdqa %xmm4,64(%ebp)
630 vmovdqa -128(%ebp),%xmm0
632 vmovdqa -64(%ebp),%xmm3
634 vmovdqa 16(%ebp),%xmm5
639 vpaddd %xmm3,%xmm0,%xmm0
640 vpxor %xmm0,%xmm6,%xmm6
641 .byte 143,232,120,194,246,16
642 vpaddd %xmm6,%xmm4,%xmm4
643 vpxor %xmm4,%xmm3,%xmm2
644 vmovdqa -112(%ebx),%xmm1
645 .byte 143,232,120,194,210,12
646 vmovdqa -48(%ebx),%xmm3
647 vpaddd %xmm2,%xmm0,%xmm0
648 vmovdqa 80(%ebx),%xmm7
649 vpxor %xmm0,%xmm6,%xmm6
650 vpaddd %xmm3,%xmm1,%xmm1
651 .byte 143,232,120,194,246,8
652 vmovdqa %xmm0,-128(%ebx)
653 vpaddd %xmm6,%xmm4,%xmm4
654 vmovdqa %xmm6,64(%ebx)
655 vpxor %xmm4,%xmm2,%xmm2
656 vpxor %xmm1,%xmm7,%xmm7
657 .byte 143,232,120,194,210,7
659 .byte 143,232,120,194,255,16
660 vmovdqa %xmm2,-64(%ebx)
661 vpaddd %xmm7,%xmm5,%xmm5
662 vmovdqa 32(%ebx),%xmm4
663 vpxor %xmm5,%xmm3,%xmm3
664 vmovdqa -96(%ebx),%xmm0
665 .byte 143,232,120,194,219,12
666 vmovdqa -32(%ebx),%xmm2
667 vpaddd %xmm3,%xmm1,%xmm1
668 vmovdqa 96(%ebx),%xmm6
669 vpxor %xmm1,%xmm7,%xmm7
670 vpaddd %xmm2,%xmm0,%xmm0
671 .byte 143,232,120,194,255,8
672 vmovdqa %xmm1,-112(%ebx)
673 vpaddd %xmm7,%xmm5,%xmm5
674 vmovdqa %xmm7,80(%ebx)
675 vpxor %xmm5,%xmm3,%xmm3
676 vpxor %xmm0,%xmm6,%xmm6
677 .byte 143,232,120,194,219,7
678 vmovdqa %xmm5,16(%ebx)
679 .byte 143,232,120,194,246,16
680 vmovdqa %xmm3,-48(%ebx)
681 vpaddd %xmm6,%xmm4,%xmm4
682 vmovdqa 48(%ebx),%xmm5
683 vpxor %xmm4,%xmm2,%xmm2
684 vmovdqa -80(%ebx),%xmm1
685 .byte 143,232,120,194,210,12
686 vmovdqa -16(%ebx),%xmm3
687 vpaddd %xmm2,%xmm0,%xmm0
688 vmovdqa 112(%ebx),%xmm7
689 vpxor %xmm0,%xmm6,%xmm6
690 vpaddd %xmm3,%xmm1,%xmm1
691 .byte 143,232,120,194,246,8
692 vmovdqa %xmm0,-96(%ebx)
693 vpaddd %xmm6,%xmm4,%xmm4
694 vmovdqa %xmm6,96(%ebx)
695 vpxor %xmm4,%xmm2,%xmm2
696 vpxor %xmm1,%xmm7,%xmm7
697 .byte 143,232,120,194,210,7
698 .byte 143,232,120,194,255,16
699 vmovdqa %xmm2,-32(%ebx)
700 vpaddd %xmm7,%xmm5,%xmm5
701 vpxor %xmm5,%xmm3,%xmm3
702 vmovdqa -128(%ebx),%xmm0
703 .byte 143,232,120,194,219,12
704 vmovdqa -48(%ebx),%xmm2
705 vpaddd %xmm3,%xmm1,%xmm1
706 vpxor %xmm1,%xmm7,%xmm7
707 vpaddd %xmm2,%xmm0,%xmm0
708 .byte 143,232,120,194,255,8
709 vmovdqa %xmm1,-80(%ebx)
710 vpaddd %xmm7,%xmm5,%xmm5
711 vpxor %xmm5,%xmm3,%xmm3
712 vpxor %xmm0,%xmm7,%xmm6
713 .byte 143,232,120,194,219,7
714 .byte 143,232,120,194,246,16
715 vmovdqa %xmm3,-16(%ebx)
716 vpaddd %xmm6,%xmm4,%xmm4
717 vpxor %xmm4,%xmm2,%xmm2
718 vmovdqa -112(%ebx),%xmm1
719 .byte 143,232,120,194,210,12
720 vmovdqa -32(%ebx),%xmm3
721 vpaddd %xmm2,%xmm0,%xmm0
722 vmovdqa 64(%ebx),%xmm7
723 vpxor %xmm0,%xmm6,%xmm6
724 vpaddd %xmm3,%xmm1,%xmm1
725 .byte 143,232,120,194,246,8
726 vmovdqa %xmm0,-128(%ebx)
727 vpaddd %xmm6,%xmm4,%xmm4
728 vmovdqa %xmm6,112(%ebx)
729 vpxor %xmm4,%xmm2,%xmm2
730 vpxor %xmm1,%xmm7,%xmm7
731 .byte 143,232,120,194,210,7
732 vmovdqa %xmm4,32(%ebx)
733 .byte 143,232,120,194,255,16
734 vmovdqa %xmm2,-48(%ebx)
735 vpaddd %xmm7,%xmm5,%xmm5
737 vpxor %xmm5,%xmm3,%xmm3
738 vmovdqa -96(%ebx),%xmm0
739 .byte 143,232,120,194,219,12
740 vmovdqa -16(%ebx),%xmm2
741 vpaddd %xmm3,%xmm1,%xmm1
742 vmovdqa 80(%ebx),%xmm6
743 vpxor %xmm1,%xmm7,%xmm7
744 vpaddd %xmm2,%xmm0,%xmm0
745 .byte 143,232,120,194,255,8
746 vmovdqa %xmm1,-112(%ebx)
747 vpaddd %xmm7,%xmm5,%xmm5
748 vmovdqa %xmm7,64(%ebx)
749 vpxor %xmm5,%xmm3,%xmm3
750 vpxor %xmm0,%xmm6,%xmm6
751 .byte 143,232,120,194,219,7
752 vmovdqa %xmm5,48(%ebx)
753 .byte 143,232,120,194,246,16
754 vmovdqa %xmm3,-32(%ebx)
755 vpaddd %xmm6,%xmm4,%xmm4
756 vmovdqa 16(%ebx),%xmm5
757 vpxor %xmm4,%xmm2,%xmm2
758 vmovdqa -80(%ebx),%xmm1
759 .byte 143,232,120,194,210,12
760 vmovdqa -64(%ebx),%xmm3
761 vpaddd %xmm2,%xmm0,%xmm0
762 vmovdqa 96(%ebx),%xmm7
763 vpxor %xmm0,%xmm6,%xmm6
764 vpaddd %xmm3,%xmm1,%xmm1
765 .byte 143,232,120,194,246,8
766 vmovdqa %xmm0,-96(%ebx)
767 vpaddd %xmm6,%xmm4,%xmm4
768 vmovdqa %xmm6,80(%ebx)
769 vpxor %xmm4,%xmm2,%xmm2
770 vpxor %xmm1,%xmm7,%xmm7
771 .byte 143,232,120,194,210,7
772 .byte 143,232,120,194,255,16
773 vmovdqa %xmm2,-16(%ebx)
774 vpaddd %xmm7,%xmm5,%xmm5
775 vpxor %xmm5,%xmm3,%xmm3
776 vmovdqa -128(%ebx),%xmm0
777 .byte 143,232,120,194,219,12
778 vpaddd %xmm3,%xmm1,%xmm1
779 vmovdqa 64(%ebx),%xmm6
780 vpxor %xmm1,%xmm7,%xmm7
781 .byte 143,232,120,194,255,8
782 vmovdqa %xmm1,-80(%ebx)
783 vpaddd %xmm7,%xmm5,%xmm5
784 vmovdqa %xmm7,96(%ebx)
785 vpxor %xmm5,%xmm3,%xmm3
786 .byte 143,232,120,194,219,7
789 vmovdqa %xmm3,-64(%ebx)
791 vmovdqa %xmm5,16(%ebx)
792 vmovdqa %xmm6,64(%ebx)
793 vmovdqa %xmm7,96(%ebx)
794 vmovdqa -112(%ebx),%xmm1
795 vmovdqa -96(%ebx),%xmm2
796 vmovdqa -80(%ebx),%xmm3
797 vpaddd -128(%ebp),%xmm0,%xmm0
798 vpaddd -112(%ebp),%xmm1,%xmm1
799 vpaddd -96(%ebp),%xmm2,%xmm2
800 vpaddd -80(%ebp),%xmm3,%xmm3
801 vpunpckldq %xmm1,%xmm0,%xmm6
802 vpunpckldq %xmm3,%xmm2,%xmm7
803 vpunpckhdq %xmm1,%xmm0,%xmm0
804 vpunpckhdq %xmm3,%xmm2,%xmm2
805 vpunpcklqdq %xmm7,%xmm6,%xmm1
806 vpunpckhqdq %xmm7,%xmm6,%xmm6
807 vpunpcklqdq %xmm2,%xmm0,%xmm7
808 vpunpckhqdq %xmm2,%xmm0,%xmm3
809 vpxor -128(%esi),%xmm1,%xmm4
810 vpxor -64(%esi),%xmm6,%xmm5
811 vpxor (%esi),%xmm7,%xmm6
812 vpxor 64(%esi),%xmm3,%xmm7
814 vmovdqa -64(%ebx),%xmm0
815 vmovdqa -48(%ebx),%xmm1
816 vmovdqa -32(%ebx),%xmm2
817 vmovdqa -16(%ebx),%xmm3
818 vmovdqu %xmm4,-128(%edi)
819 vmovdqu %xmm5,-64(%edi)
821 vmovdqu %xmm7,64(%edi)
823 vpaddd -64(%ebp),%xmm0,%xmm0
824 vpaddd -48(%ebp),%xmm1,%xmm1
825 vpaddd -32(%ebp),%xmm2,%xmm2
826 vpaddd -16(%ebp),%xmm3,%xmm3
827 vpunpckldq %xmm1,%xmm0,%xmm6
828 vpunpckldq %xmm3,%xmm2,%xmm7
829 vpunpckhdq %xmm1,%xmm0,%xmm0
830 vpunpckhdq %xmm3,%xmm2,%xmm2
831 vpunpcklqdq %xmm7,%xmm6,%xmm1
832 vpunpckhqdq %xmm7,%xmm6,%xmm6
833 vpunpcklqdq %xmm2,%xmm0,%xmm7
834 vpunpckhqdq %xmm2,%xmm0,%xmm3
835 vpxor -128(%esi),%xmm1,%xmm4
836 vpxor -64(%esi),%xmm6,%xmm5
837 vpxor (%esi),%xmm7,%xmm6
838 vpxor 64(%esi),%xmm3,%xmm7
841 vmovdqa 16(%ebx),%xmm1
842 vmovdqa 32(%ebx),%xmm2
843 vmovdqa 48(%ebx),%xmm3
844 vmovdqu %xmm4,-128(%edi)
845 vmovdqu %xmm5,-64(%edi)
847 vmovdqu %xmm7,64(%edi)
849 vpaddd (%ebp),%xmm0,%xmm0
850 vpaddd 16(%ebp),%xmm1,%xmm1
851 vpaddd 32(%ebp),%xmm2,%xmm2
852 vpaddd 48(%ebp),%xmm3,%xmm3
853 vpunpckldq %xmm1,%xmm0,%xmm6
854 vpunpckldq %xmm3,%xmm2,%xmm7
855 vpunpckhdq %xmm1,%xmm0,%xmm0
856 vpunpckhdq %xmm3,%xmm2,%xmm2
857 vpunpcklqdq %xmm7,%xmm6,%xmm1
858 vpunpckhqdq %xmm7,%xmm6,%xmm6
859 vpunpcklqdq %xmm2,%xmm0,%xmm7
860 vpunpckhqdq %xmm2,%xmm0,%xmm3
861 vpxor -128(%esi),%xmm1,%xmm4
862 vpxor -64(%esi),%xmm6,%xmm5
863 vpxor (%esi),%xmm7,%xmm6
864 vpxor 64(%esi),%xmm3,%xmm7
866 vmovdqa 64(%ebx),%xmm0
867 vmovdqa 80(%ebx),%xmm1
868 vmovdqa 96(%ebx),%xmm2
869 vmovdqa 112(%ebx),%xmm3
870 vmovdqu %xmm4,-128(%edi)
871 vmovdqu %xmm5,-64(%edi)
873 vmovdqu %xmm7,64(%edi)
875 vpaddd 64(%ebp),%xmm0,%xmm0
876 vpaddd 80(%ebp),%xmm1,%xmm1
877 vpaddd 96(%ebp),%xmm2,%xmm2
878 vpaddd 112(%ebp),%xmm3,%xmm3
879 vpunpckldq %xmm1,%xmm0,%xmm6
880 vpunpckldq %xmm3,%xmm2,%xmm7
881 vpunpckhdq %xmm1,%xmm0,%xmm0
882 vpunpckhdq %xmm3,%xmm2,%xmm2
883 vpunpcklqdq %xmm7,%xmm6,%xmm1
884 vpunpckhqdq %xmm7,%xmm6,%xmm6
885 vpunpcklqdq %xmm2,%xmm0,%xmm7
886 vpunpckhqdq %xmm2,%xmm0,%xmm3
887 vpxor -128(%esi),%xmm1,%xmm4
888 vpxor -64(%esi),%xmm6,%xmm5
889 vpxor (%esi),%xmm7,%xmm6
890 vpxor 64(%esi),%xmm3,%xmm7
892 vmovdqu %xmm4,-128(%edi)
893 vmovdqu %xmm5,-64(%edi)
895 vmovdqu %xmm7,64(%edi)
907 vpaddd 96(%eax),%xmm2,%xmm2
908 vpand 112(%eax),%xmm3,%xmm3
909 vpor %xmm2,%xmm3,%xmm3
911 vmovdqa 32(%eax),%xmm0
913 vmovdqu 16(%edx),%xmm2
915 vmovdqa 16(%eax),%xmm7
918 vmovdqa %xmm1,16(%esp)
919 vmovdqa %xmm2,32(%esp)
920 vmovdqa %xmm3,48(%esp)
925 vmovdqa 80(%eax),%xmm3
927 vmovdqa 16(%esp),%xmm1
928 vmovdqa 32(%esp),%xmm2
929 vpaddd 48(%esp),%xmm3,%xmm3
931 vmovdqa %xmm3,48(%esp)
935 vpaddd %xmm1,%xmm0,%xmm0
936 vpxor %xmm0,%xmm3,%xmm3
937 .byte 143,232,120,194,219,16
938 vpaddd %xmm3,%xmm2,%xmm2
939 vpxor %xmm2,%xmm1,%xmm1
940 .byte 143,232,120,194,201,12
941 vpaddd %xmm1,%xmm0,%xmm0
942 vpxor %xmm0,%xmm3,%xmm3
943 .byte 143,232,120,194,219,8
944 vpaddd %xmm3,%xmm2,%xmm2
945 vpxor %xmm2,%xmm1,%xmm1
946 .byte 143,232,120,194,201,7
947 vpshufd $78,%xmm2,%xmm2
948 vpshufd $57,%xmm1,%xmm1
949 vpshufd $147,%xmm3,%xmm3
950 vpaddd %xmm1,%xmm0,%xmm0
951 vpxor %xmm0,%xmm3,%xmm3
952 .byte 143,232,120,194,219,16
953 vpaddd %xmm3,%xmm2,%xmm2
954 vpxor %xmm2,%xmm1,%xmm1
955 .byte 143,232,120,194,201,12
956 vpaddd %xmm1,%xmm0,%xmm0
957 vpxor %xmm0,%xmm3,%xmm3
958 .byte 143,232,120,194,219,8
959 vpaddd %xmm3,%xmm2,%xmm2
960 vpxor %xmm2,%xmm1,%xmm1
961 .byte 143,232,120,194,201,7
962 vpshufd $78,%xmm2,%xmm2
963 vpshufd $147,%xmm1,%xmm1
964 vpshufd $57,%xmm3,%xmm3
967 vpaddd (%esp),%xmm0,%xmm0
968 vpaddd 16(%esp),%xmm1,%xmm1
969 vpaddd 32(%esp),%xmm2,%xmm2
970 vpaddd 48(%esp),%xmm3,%xmm3
973 vpxor (%esi),%xmm0,%xmm0
974 vpxor 16(%esi),%xmm1,%xmm1
975 vpxor 32(%esi),%xmm2,%xmm2
976 vpxor 48(%esi),%xmm3,%xmm3
979 vmovdqu %xmm1,16(%edi)
980 vmovdqu %xmm2,32(%edi)
981 vmovdqu %xmm3,48(%edi)
988 vmovdqa %xmm1,16(%esp)
989 vmovdqa %xmm2,32(%esp)
990 vmovdqa %xmm3,48(%esp)
995 movb (%esp,%ebp,1),%al
996 movb (%esi,%ebp,1),%dl
999 movb %al,-1(%edi,%ebp,1)
1010 .size ChaCha20_xop,.-.L_ChaCha20_xop_begin
1011 .comm OPENSSL_ia32cap_P,16,4
1014 .globl ChaCha20_ctr32
1015 .type ChaCha20_ctr32,@function
1018 .L_ChaCha20_ctr32_begin:
1029 leal OPENSSL_ia32cap_P,%ebp
1030 testl $16777216,(%ebp)
1034 jmp .Lssse3_shortcut
1071 movl $1634760805,%eax
1072 movl $857760878,4(%esp)
1073 movl $2036477234,8(%esp)
1074 movl $1797285236,12(%esp)
1256 addl $1634760805,%eax
1283 addl $857760878,%ebp
1284 addl $2036477234,%ecx
1285 addl $1797285236,%esi
1340 addl $857760878,%ebp
1341 addl $2036477234,%ecx
1342 addl $1797285236,%esi
1371 movb (%esi,%ebp,1),%al
1372 movb (%esp,%esi,1),%dl
1375 movb %al,-1(%ecx,%esi,1)
1386 .size ChaCha20_ctr32,.-.L_ChaCha20_ctr32_begin
1387 .globl ChaCha20_ssse3
1388 .type ChaCha20_ssse3,@function
1391 .L_ChaCha20_ssse3_begin:
1408 leal .Lssse3_data-.Lpic_point(%eax),%eax
1411 movdqa 32(%eax),%xmm0
1413 movdqu 16(%edx),%xmm2
1415 movdqa 16(%eax),%xmm7
1418 movdqa %xmm1,16(%esp)
1419 movdqa %xmm2,32(%esp)
1420 movdqa %xmm3,48(%esp)
1425 movdqa 80(%eax),%xmm3
1427 movdqa 16(%esp),%xmm1
1428 movdqa 32(%esp),%xmm2
1429 paddd 48(%esp),%xmm3
1431 movdqa %xmm3,48(%esp)
1437 .byte 102,15,56,0,222
1446 .byte 102,15,56,0,223
1453 pshufd $78,%xmm2,%xmm2
1454 pshufd $57,%xmm1,%xmm1
1455 pshufd $147,%xmm3,%xmm3
1459 .byte 102,15,56,0,222
1468 .byte 102,15,56,0,223
1475 pshufd $78,%xmm2,%xmm2
1476 pshufd $147,%xmm1,%xmm1
1477 pshufd $57,%xmm3,%xmm3
1481 paddd 16(%esp),%xmm1
1482 paddd 32(%esp),%xmm2
1483 paddd 48(%esp),%xmm3
1487 movdqu 16(%esi),%xmm5
1489 movdqu 32(%esi),%xmm4
1491 movdqu 48(%esi),%xmm5
1496 movdqu %xmm1,16(%edi)
1497 movdqu %xmm2,32(%edi)
1498 movdqu %xmm3,48(%edi)
1505 movdqa %xmm1,16(%esp)
1506 movdqa %xmm2,32(%esp)
1507 movdqa %xmm3,48(%esp)
1512 movb (%esp,%ebp,1),%al
1513 movb (%esi,%ebp,1),%dl
1516 movb %al,-1(%edi,%ebp,1)
1526 .size ChaCha20_ssse3,.-.L_ChaCha20_ssse3_begin
1529 .byte 2,3,0,1,6,7,4,5,10,11,8,9,14,15,12,13
1530 .byte 3,0,1,2,7,4,5,6,11,8,9,10,15,12,13,14
1531 .long 1634760805,857760878,2036477234,1797285236
1538 .byte 67,104,97,67,104,97,50,48,32,102,111,114,32,120,56,54
1539 .byte 44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32
1540 .byte 60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111
1543 .type ChaCha20_xop,@function
1546 .L_ChaCha20_xop_begin:
1562 leal .Lssse3_data-.Lpic_point(%eax),%eax
1563 vmovdqu (%ebx),%xmm3
1570 vmovdqu (%edx),%xmm7
1571 vpshufd $0,%xmm3,%xmm0
1572 vpshufd $85,%xmm3,%xmm1
1573 vpshufd $170,%xmm3,%xmm2
1574 vpshufd $255,%xmm3,%xmm3
1575 vpaddd 48(%eax),%xmm0,%xmm0
1576 vpshufd $0,%xmm7,%xmm4
1577 vpshufd $85,%xmm7,%xmm5
1578 vpsubd 64(%eax),%xmm0,%xmm0
1579 vpshufd $170,%xmm7,%xmm6
1580 vpshufd $255,%xmm7,%xmm7
1581 vmovdqa %xmm0,64(%ebp)
1582 vmovdqa %xmm1,80(%ebp)
1583 vmovdqa %xmm2,96(%ebp)
1584 vmovdqa %xmm3,112(%ebp)
1585 vmovdqu 16(%edx),%xmm3
1586 vmovdqa %xmm4,-64(%ebp)
1587 vmovdqa %xmm5,-48(%ebp)
1588 vmovdqa %xmm6,-32(%ebp)
1589 vmovdqa %xmm7,-16(%ebp)
1590 vmovdqa 32(%eax),%xmm7
1592 vpshufd $0,%xmm3,%xmm0
1593 vpshufd $85,%xmm3,%xmm1
1594 vpshufd $170,%xmm3,%xmm2
1595 vpshufd $255,%xmm3,%xmm3
1596 vpshufd $0,%xmm7,%xmm4
1597 vpshufd $85,%xmm7,%xmm5
1598 vpshufd $170,%xmm7,%xmm6
1599 vpshufd $255,%xmm7,%xmm7
1600 vmovdqa %xmm0,(%ebp)
1601 vmovdqa %xmm1,16(%ebp)
1602 vmovdqa %xmm2,32(%ebp)
1603 vmovdqa %xmm3,48(%ebp)
1604 vmovdqa %xmm4,-128(%ebp)
1605 vmovdqa %xmm5,-112(%ebp)
1606 vmovdqa %xmm6,-96(%ebp)
1607 vmovdqa %xmm7,-80(%ebp)
1613 vmovdqa -112(%ebp),%xmm1
1614 vmovdqa -96(%ebp),%xmm2
1615 vmovdqa -80(%ebp),%xmm3
1616 vmovdqa -48(%ebp),%xmm5
1617 vmovdqa -32(%ebp),%xmm6
1618 vmovdqa -16(%ebp),%xmm7
1619 vmovdqa %xmm1,-112(%ebx)
1620 vmovdqa %xmm2,-96(%ebx)
1621 vmovdqa %xmm3,-80(%ebx)
1622 vmovdqa %xmm5,-48(%ebx)
1623 vmovdqa %xmm6,-32(%ebx)
1624 vmovdqa %xmm7,-16(%ebx)
1625 vmovdqa 32(%ebp),%xmm2
1626 vmovdqa 48(%ebp),%xmm3
1627 vmovdqa 64(%ebp),%xmm4
1628 vmovdqa 80(%ebp),%xmm5
1629 vmovdqa 96(%ebp),%xmm6
1630 vmovdqa 112(%ebp),%xmm7
1631 vpaddd 64(%eax),%xmm4,%xmm4
1632 vmovdqa %xmm2,32(%ebx)
1633 vmovdqa %xmm3,48(%ebx)
1634 vmovdqa %xmm4,64(%ebx)
1635 vmovdqa %xmm5,80(%ebx)
1636 vmovdqa %xmm6,96(%ebx)
1637 vmovdqa %xmm7,112(%ebx)
1638 vmovdqa %xmm4,64(%ebp)
1639 vmovdqa -128(%ebp),%xmm0
1641 vmovdqa -64(%ebp),%xmm3
1642 vmovdqa (%ebp),%xmm4
1643 vmovdqa 16(%ebp),%xmm5
1648 vpaddd %xmm3,%xmm0,%xmm0
1649 vpxor %xmm0,%xmm6,%xmm6
1650 .byte 143,232,120,194,246,16
1651 vpaddd %xmm6,%xmm4,%xmm4
1652 vpxor %xmm4,%xmm3,%xmm2
1653 vmovdqa -112(%ebx),%xmm1
1654 .byte 143,232,120,194,210,12
1655 vmovdqa -48(%ebx),%xmm3
1656 vpaddd %xmm2,%xmm0,%xmm0
1657 vmovdqa 80(%ebx),%xmm7
1658 vpxor %xmm0,%xmm6,%xmm6
1659 vpaddd %xmm3,%xmm1,%xmm1
1660 .byte 143,232,120,194,246,8
1661 vmovdqa %xmm0,-128(%ebx)
1662 vpaddd %xmm6,%xmm4,%xmm4
1663 vmovdqa %xmm6,64(%ebx)
1664 vpxor %xmm4,%xmm2,%xmm2
1665 vpxor %xmm1,%xmm7,%xmm7
1666 .byte 143,232,120,194,210,7
1667 vmovdqa %xmm4,(%ebx)
1668 .byte 143,232,120,194,255,16
1669 vmovdqa %xmm2,-64(%ebx)
1670 vpaddd %xmm7,%xmm5,%xmm5
1671 vmovdqa 32(%ebx),%xmm4
1672 vpxor %xmm5,%xmm3,%xmm3
1673 vmovdqa -96(%ebx),%xmm0
1674 .byte 143,232,120,194,219,12
1675 vmovdqa -32(%ebx),%xmm2
1676 vpaddd %xmm3,%xmm1,%xmm1
1677 vmovdqa 96(%ebx),%xmm6
1678 vpxor %xmm1,%xmm7,%xmm7
1679 vpaddd %xmm2,%xmm0,%xmm0
1680 .byte 143,232,120,194,255,8
1681 vmovdqa %xmm1,-112(%ebx)
1682 vpaddd %xmm7,%xmm5,%xmm5
1683 vmovdqa %xmm7,80(%ebx)
1684 vpxor %xmm5,%xmm3,%xmm3
1685 vpxor %xmm0,%xmm6,%xmm6
1686 .byte 143,232,120,194,219,7
1687 vmovdqa %xmm5,16(%ebx)
1688 .byte 143,232,120,194,246,16
1689 vmovdqa %xmm3,-48(%ebx)
1690 vpaddd %xmm6,%xmm4,%xmm4
1691 vmovdqa 48(%ebx),%xmm5
1692 vpxor %xmm4,%xmm2,%xmm2
1693 vmovdqa -80(%ebx),%xmm1
1694 .byte 143,232,120,194,210,12
1695 vmovdqa -16(%ebx),%xmm3
1696 vpaddd %xmm2,%xmm0,%xmm0
1697 vmovdqa 112(%ebx),%xmm7
1698 vpxor %xmm0,%xmm6,%xmm6
1699 vpaddd %xmm3,%xmm1,%xmm1
1700 .byte 143,232,120,194,246,8
1701 vmovdqa %xmm0,-96(%ebx)
1702 vpaddd %xmm6,%xmm4,%xmm4
1703 vmovdqa %xmm6,96(%ebx)
1704 vpxor %xmm4,%xmm2,%xmm2
1705 vpxor %xmm1,%xmm7,%xmm7
1706 .byte 143,232,120,194,210,7
1707 .byte 143,232,120,194,255,16
1708 vmovdqa %xmm2,-32(%ebx)
1709 vpaddd %xmm7,%xmm5,%xmm5
1710 vpxor %xmm5,%xmm3,%xmm3
1711 vmovdqa -128(%ebx),%xmm0
1712 .byte 143,232,120,194,219,12
1713 vmovdqa -48(%ebx),%xmm2
1714 vpaddd %xmm3,%xmm1,%xmm1
1715 vpxor %xmm1,%xmm7,%xmm7
1716 vpaddd %xmm2,%xmm0,%xmm0
1717 .byte 143,232,120,194,255,8
1718 vmovdqa %xmm1,-80(%ebx)
1719 vpaddd %xmm7,%xmm5,%xmm5
1720 vpxor %xmm5,%xmm3,%xmm3
1721 vpxor %xmm0,%xmm7,%xmm6
1722 .byte 143,232,120,194,219,7
1723 .byte 143,232,120,194,246,16
1724 vmovdqa %xmm3,-16(%ebx)
1725 vpaddd %xmm6,%xmm4,%xmm4
1726 vpxor %xmm4,%xmm2,%xmm2
1727 vmovdqa -112(%ebx),%xmm1
1728 .byte 143,232,120,194,210,12
1729 vmovdqa -32(%ebx),%xmm3
1730 vpaddd %xmm2,%xmm0,%xmm0
1731 vmovdqa 64(%ebx),%xmm7
1732 vpxor %xmm0,%xmm6,%xmm6
1733 vpaddd %xmm3,%xmm1,%xmm1
1734 .byte 143,232,120,194,246,8
1735 vmovdqa %xmm0,-128(%ebx)
1736 vpaddd %xmm6,%xmm4,%xmm4
1737 vmovdqa %xmm6,112(%ebx)
1738 vpxor %xmm4,%xmm2,%xmm2
1739 vpxor %xmm1,%xmm7,%xmm7
1740 .byte 143,232,120,194,210,7
1741 vmovdqa %xmm4,32(%ebx)
1742 .byte 143,232,120,194,255,16
1743 vmovdqa %xmm2,-48(%ebx)
1744 vpaddd %xmm7,%xmm5,%xmm5
1745 vmovdqa (%ebx),%xmm4
1746 vpxor %xmm5,%xmm3,%xmm3
1747 vmovdqa -96(%ebx),%xmm0
1748 .byte 143,232,120,194,219,12
1749 vmovdqa -16(%ebx),%xmm2
1750 vpaddd %xmm3,%xmm1,%xmm1
1751 vmovdqa 80(%ebx),%xmm6
1752 vpxor %xmm1,%xmm7,%xmm7
1753 vpaddd %xmm2,%xmm0,%xmm0
1754 .byte 143,232,120,194,255,8
1755 vmovdqa %xmm1,-112(%ebx)
1756 vpaddd %xmm7,%xmm5,%xmm5
1757 vmovdqa %xmm7,64(%ebx)
1758 vpxor %xmm5,%xmm3,%xmm3
1759 vpxor %xmm0,%xmm6,%xmm6
1760 .byte 143,232,120,194,219,7
1761 vmovdqa %xmm5,48(%ebx)
1762 .byte 143,232,120,194,246,16
1763 vmovdqa %xmm3,-32(%ebx)
1764 vpaddd %xmm6,%xmm4,%xmm4
1765 vmovdqa 16(%ebx),%xmm5
1766 vpxor %xmm4,%xmm2,%xmm2
1767 vmovdqa -80(%ebx),%xmm1
1768 .byte 143,232,120,194,210,12
1769 vmovdqa -64(%ebx),%xmm3
1770 vpaddd %xmm2,%xmm0,%xmm0
1771 vmovdqa 96(%ebx),%xmm7
1772 vpxor %xmm0,%xmm6,%xmm6
1773 vpaddd %xmm3,%xmm1,%xmm1
1774 .byte 143,232,120,194,246,8
1775 vmovdqa %xmm0,-96(%ebx)
1776 vpaddd %xmm6,%xmm4,%xmm4
1777 vmovdqa %xmm6,80(%ebx)
1778 vpxor %xmm4,%xmm2,%xmm2
1779 vpxor %xmm1,%xmm7,%xmm7
1780 .byte 143,232,120,194,210,7
1781 .byte 143,232,120,194,255,16
1782 vmovdqa %xmm2,-16(%ebx)
1783 vpaddd %xmm7,%xmm5,%xmm5
1784 vpxor %xmm5,%xmm3,%xmm3
1785 vmovdqa -128(%ebx),%xmm0
1786 .byte 143,232,120,194,219,12
1787 vpaddd %xmm3,%xmm1,%xmm1
1788 vmovdqa 64(%ebx),%xmm6
1789 vpxor %xmm1,%xmm7,%xmm7
1790 .byte 143,232,120,194,255,8
1791 vmovdqa %xmm1,-80(%ebx)
1792 vpaddd %xmm7,%xmm5,%xmm5
1793 vmovdqa %xmm7,96(%ebx)
1794 vpxor %xmm5,%xmm3,%xmm3
1795 .byte 143,232,120,194,219,7
1798 vmovdqa %xmm3,-64(%ebx)
1799 vmovdqa %xmm4,(%ebx)
1800 vmovdqa %xmm5,16(%ebx)
1801 vmovdqa %xmm6,64(%ebx)
1802 vmovdqa %xmm7,96(%ebx)
1803 vmovdqa -112(%ebx),%xmm1
1804 vmovdqa -96(%ebx),%xmm2
1805 vmovdqa -80(%ebx),%xmm3
1806 vpaddd -128(%ebp),%xmm0,%xmm0
1807 vpaddd -112(%ebp),%xmm1,%xmm1
1808 vpaddd -96(%ebp),%xmm2,%xmm2
1809 vpaddd -80(%ebp),%xmm3,%xmm3
1810 vpunpckldq %xmm1,%xmm0,%xmm6
1811 vpunpckldq %xmm3,%xmm2,%xmm7
1812 vpunpckhdq %xmm1,%xmm0,%xmm0
1813 vpunpckhdq %xmm3,%xmm2,%xmm2
1814 vpunpcklqdq %xmm7,%xmm6,%xmm1
1815 vpunpckhqdq %xmm7,%xmm6,%xmm6
1816 vpunpcklqdq %xmm2,%xmm0,%xmm7
1817 vpunpckhqdq %xmm2,%xmm0,%xmm3
1818 vpxor -128(%esi),%xmm1,%xmm4
1819 vpxor -64(%esi),%xmm6,%xmm5
1820 vpxor (%esi),%xmm7,%xmm6
1821 vpxor 64(%esi),%xmm3,%xmm7
1823 vmovdqa -64(%ebx),%xmm0
1824 vmovdqa -48(%ebx),%xmm1
1825 vmovdqa -32(%ebx),%xmm2
1826 vmovdqa -16(%ebx),%xmm3
1827 vmovdqu %xmm4,-128(%edi)
1828 vmovdqu %xmm5,-64(%edi)
1829 vmovdqu %xmm6,(%edi)
1830 vmovdqu %xmm7,64(%edi)
1832 vpaddd -64(%ebp),%xmm0,%xmm0
1833 vpaddd -48(%ebp),%xmm1,%xmm1
1834 vpaddd -32(%ebp),%xmm2,%xmm2
1835 vpaddd -16(%ebp),%xmm3,%xmm3
1836 vpunpckldq %xmm1,%xmm0,%xmm6
1837 vpunpckldq %xmm3,%xmm2,%xmm7
1838 vpunpckhdq %xmm1,%xmm0,%xmm0
1839 vpunpckhdq %xmm3,%xmm2,%xmm2
1840 vpunpcklqdq %xmm7,%xmm6,%xmm1
1841 vpunpckhqdq %xmm7,%xmm6,%xmm6
1842 vpunpcklqdq %xmm2,%xmm0,%xmm7
1843 vpunpckhqdq %xmm2,%xmm0,%xmm3
1844 vpxor -128(%esi),%xmm1,%xmm4
1845 vpxor -64(%esi),%xmm6,%xmm5
1846 vpxor (%esi),%xmm7,%xmm6
1847 vpxor 64(%esi),%xmm3,%xmm7
1849 vmovdqa (%ebx),%xmm0
1850 vmovdqa 16(%ebx),%xmm1
1851 vmovdqa 32(%ebx),%xmm2
1852 vmovdqa 48(%ebx),%xmm3
1853 vmovdqu %xmm4,-128(%edi)
1854 vmovdqu %xmm5,-64(%edi)
1855 vmovdqu %xmm6,(%edi)
1856 vmovdqu %xmm7,64(%edi)
1858 vpaddd (%ebp),%xmm0,%xmm0
1859 vpaddd 16(%ebp),%xmm1,%xmm1
1860 vpaddd 32(%ebp),%xmm2,%xmm2
1861 vpaddd 48(%ebp),%xmm3,%xmm3
1862 vpunpckldq %xmm1,%xmm0,%xmm6
1863 vpunpckldq %xmm3,%xmm2,%xmm7
1864 vpunpckhdq %xmm1,%xmm0,%xmm0
1865 vpunpckhdq %xmm3,%xmm2,%xmm2
1866 vpunpcklqdq %xmm7,%xmm6,%xmm1
1867 vpunpckhqdq %xmm7,%xmm6,%xmm6
1868 vpunpcklqdq %xmm2,%xmm0,%xmm7
1869 vpunpckhqdq %xmm2,%xmm0,%xmm3
1870 vpxor -128(%esi),%xmm1,%xmm4
1871 vpxor -64(%esi),%xmm6,%xmm5
1872 vpxor (%esi),%xmm7,%xmm6
1873 vpxor 64(%esi),%xmm3,%xmm7
1875 vmovdqa 64(%ebx),%xmm0
1876 vmovdqa 80(%ebx),%xmm1
1877 vmovdqa 96(%ebx),%xmm2
1878 vmovdqa 112(%ebx),%xmm3
1879 vmovdqu %xmm4,-128(%edi)
1880 vmovdqu %xmm5,-64(%edi)
1881 vmovdqu %xmm6,(%edi)
1882 vmovdqu %xmm7,64(%edi)
1884 vpaddd 64(%ebp),%xmm0,%xmm0
1885 vpaddd 80(%ebp),%xmm1,%xmm1
1886 vpaddd 96(%ebp),%xmm2,%xmm2
1887 vpaddd 112(%ebp),%xmm3,%xmm3
1888 vpunpckldq %xmm1,%xmm0,%xmm6
1889 vpunpckldq %xmm3,%xmm2,%xmm7
1890 vpunpckhdq %xmm1,%xmm0,%xmm0
1891 vpunpckhdq %xmm3,%xmm2,%xmm2
1892 vpunpcklqdq %xmm7,%xmm6,%xmm1
1893 vpunpckhqdq %xmm7,%xmm6,%xmm6
1894 vpunpcklqdq %xmm2,%xmm0,%xmm7
1895 vpunpckhqdq %xmm2,%xmm0,%xmm3
1896 vpxor -128(%esi),%xmm1,%xmm4
1897 vpxor -64(%esi),%xmm6,%xmm5
1898 vpxor (%esi),%xmm7,%xmm6
1899 vpxor 64(%esi),%xmm3,%xmm7
1901 vmovdqu %xmm4,-128(%edi)
1902 vmovdqu %xmm5,-64(%edi)
1903 vmovdqu %xmm6,(%edi)
1904 vmovdqu %xmm7,64(%edi)
1911 leal -128(%esi),%esi
1913 leal -128(%edi),%edi
1914 vmovd 64(%ebp),%xmm2
1915 vmovdqu (%ebx),%xmm3
1916 vpaddd 96(%eax),%xmm2,%xmm2
1917 vpand 112(%eax),%xmm3,%xmm3
1918 vpor %xmm2,%xmm3,%xmm3
1920 vmovdqa 32(%eax),%xmm0
1921 vmovdqu (%edx),%xmm1
1922 vmovdqu 16(%edx),%xmm2
1923 vmovdqa (%eax),%xmm6
1924 vmovdqa 16(%eax),%xmm7
1926 vmovdqa %xmm0,(%esp)
1927 vmovdqa %xmm1,16(%esp)
1928 vmovdqa %xmm2,32(%esp)
1929 vmovdqa %xmm3,48(%esp)
1934 vmovdqa 80(%eax),%xmm3
1935 vmovdqa (%esp),%xmm0
1936 vmovdqa 16(%esp),%xmm1
1937 vmovdqa 32(%esp),%xmm2
1938 vpaddd 48(%esp),%xmm3,%xmm3
1940 vmovdqa %xmm3,48(%esp)
1944 vpaddd %xmm1,%xmm0,%xmm0
1945 vpxor %xmm0,%xmm3,%xmm3
1946 .byte 143,232,120,194,219,16
1947 vpaddd %xmm3,%xmm2,%xmm2
1948 vpxor %xmm2,%xmm1,%xmm1
1949 .byte 143,232,120,194,201,12
1950 vpaddd %xmm1,%xmm0,%xmm0
1951 vpxor %xmm0,%xmm3,%xmm3
1952 .byte 143,232,120,194,219,8
1953 vpaddd %xmm3,%xmm2,%xmm2
1954 vpxor %xmm2,%xmm1,%xmm1
1955 .byte 143,232,120,194,201,7
1956 vpshufd $78,%xmm2,%xmm2
1957 vpshufd $57,%xmm1,%xmm1
1958 vpshufd $147,%xmm3,%xmm3
1959 vpaddd %xmm1,%xmm0,%xmm0
1960 vpxor %xmm0,%xmm3,%xmm3
1961 .byte 143,232,120,194,219,16
1962 vpaddd %xmm3,%xmm2,%xmm2
1963 vpxor %xmm2,%xmm1,%xmm1
1964 .byte 143,232,120,194,201,12
1965 vpaddd %xmm1,%xmm0,%xmm0
1966 vpxor %xmm0,%xmm3,%xmm3
1967 .byte 143,232,120,194,219,8
1968 vpaddd %xmm3,%xmm2,%xmm2
1969 vpxor %xmm2,%xmm1,%xmm1
1970 .byte 143,232,120,194,201,7
1971 vpshufd $78,%xmm2,%xmm2
1972 vpshufd $147,%xmm1,%xmm1
1973 vpshufd $57,%xmm3,%xmm3
1976 vpaddd (%esp),%xmm0,%xmm0
1977 vpaddd 16(%esp),%xmm1,%xmm1
1978 vpaddd 32(%esp),%xmm2,%xmm2
1979 vpaddd 48(%esp),%xmm3,%xmm3
1982 vpxor (%esi),%xmm0,%xmm0
1983 vpxor 16(%esi),%xmm1,%xmm1
1984 vpxor 32(%esi),%xmm2,%xmm2
1985 vpxor 48(%esi),%xmm3,%xmm3
1987 vmovdqu %xmm0,(%edi)
1988 vmovdqu %xmm1,16(%edi)
1989 vmovdqu %xmm2,32(%edi)
1990 vmovdqu %xmm3,48(%edi)
1996 vmovdqa %xmm0,(%esp)
1997 vmovdqa %xmm1,16(%esp)
1998 vmovdqa %xmm2,32(%esp)
1999 vmovdqa %xmm3,48(%esp)
2004 movb (%esp,%ebp,1),%al
2005 movb (%esi,%ebp,1),%dl
2008 movb %al,-1(%edi,%ebp,1)
2019 .size ChaCha20_xop,.-.L_ChaCha20_xop_begin
2020 .comm OPENSSL_ia32cap_P,16,4