4 .globl _gcm_gmult_4bit_x86
5 .private_extern _gcm_gmult_4bit_x86
8 L_gcm_gmult_4bit_x86_begin:
21 movl $471859200,20(%esp)
22 movl $943718400,24(%esp)
23 movl $610271232,28(%esp)
24 movl $1887436800,32(%esp)
25 movl $1822425088,36(%esp)
26 movl $1220542464,40(%esp)
27 movl $1423966208,44(%esp)
28 movl $3774873600,48(%esp)
29 movl $4246732800,52(%esp)
30 movl $3644850176,56(%esp)
31 movl $3311403008,60(%esp)
32 movl $2441084928,64(%esp)
33 movl $2376073216,68(%esp)
34 movl $2847932416,72(%esp)
35 movl $3051356160,76(%esp)
42 movl 4(%esi,%ebx,1),%ebp
43 movl (%esi,%ebx,1),%edx
44 movl 12(%esi,%ebx,1),%ecx
45 movl 8(%esi,%ebx,1),%ebx
57 xorl 16(%esp,%eax,4),%ebp
58 movb (%esp,%edi,1),%al
60 xorl 8(%esi,%eax,1),%ebx
61 xorl 12(%esi,%eax,1),%ecx
62 xorl (%esi,%eax,1),%edx
63 xorl 4(%esi,%eax,1),%ebp
72 xorl 16(%esp,%eax,4),%ebp
73 movb (%esp,%edi,1),%al
75 xorl 8(%esi,%eax,1),%ebx
76 xorl 12(%esi,%eax,1),%ecx
77 xorl (%esi,%eax,1),%edx
78 xorl 4(%esi,%eax,1),%ebp
97 .globl _gcm_ghash_4bit_x86
98 .private_extern _gcm_ghash_4bit_x86
101 L_gcm_ghash_4bit_x86_begin:
118 movl $471859200,20(%esp)
119 movl $943718400,24(%esp)
120 movl $610271232,28(%esp)
121 movl $1887436800,32(%esp)
122 movl $1822425088,36(%esp)
123 movl $1220542464,40(%esp)
124 movl $1423966208,44(%esp)
125 movl $3774873600,48(%esp)
126 movl $4246732800,52(%esp)
127 movl $3644850176,56(%esp)
128 movl $3311403008,60(%esp)
129 movl $2441084928,64(%esp)
130 movl $2376073216,68(%esp)
131 movl $2847932416,72(%esp)
132 movl $3051356160,76(%esp)
145 movl 4(%esi,%ebx,1),%ebp
146 movl (%esi,%ebx,1),%edx
147 movl 12(%esi,%ebx,1),%ecx
148 movl 8(%esi,%ebx,1),%ebx
160 xorl 16(%esp,%eax,4),%ebp
161 movb (%esp,%edi,1),%al
163 xorl 8(%esi,%eax,1),%ebx
164 xorl 12(%esi,%eax,1),%ecx
165 xorl (%esi,%eax,1),%edx
166 xorl 4(%esi,%eax,1),%ebp
175 xorl 16(%esp,%eax,4),%ebp
176 movb (%esp,%edi,1),%al
178 xorl 8(%esi,%eax,1),%ebx
179 xorl 12(%esi,%eax,1),%ecx
180 xorl (%esi,%eax,1),%edx
181 xorl 4(%esi,%eax,1),%ebp
193 jb L002x86_outer_loop
205 .globl _gcm_gmult_4bit_mmx
206 .private_extern _gcm_gmult_4bit_mmx
209 L_gcm_gmult_4bit_mmx_begin:
219 leal Lrem_4bit-L005pic_point(%eax),%eax
227 movq 8(%esi,%ecx,1),%mm0
228 movq (%esi,%ecx,1),%mm1
237 pxor 8(%esi,%edx,1),%mm0
238 movb (%edi,%ebp,1),%cl
240 pxor (%eax,%ebx,8),%mm1
243 pxor (%esi,%edx,1),%mm1
253 pxor 8(%esi,%ecx,1),%mm0
255 pxor (%eax,%ebx,8),%mm1
257 pxor (%esi,%ecx,1),%mm1
268 pxor 8(%esi,%ecx,1),%mm0
270 pxor (%eax,%ebx,8),%mm1
272 pxor (%esi,%ecx,1),%mm1
278 pxor 8(%esi,%edx,1),%mm0
280 pxor (%eax,%ebx,8),%mm1
282 pxor (%esi,%edx,1),%mm1
303 .globl _gcm_ghash_4bit_mmx
304 .private_extern _gcm_ghash_4bit_mmx
307 L_gcm_ghash_4bit_mmx_begin:
320 leal Lrem_8bit-L008pic_point(%esi),%esi
577 movq 16(%esp,%eax,8),%mm7
578 movq 144(%esp,%eax,8),%mm6
585 pxor 272(%esp,%ebp,8),%mm7
589 pxor 16(%esp,%eax,8),%mm7
591 pxor 144(%esp,%eax,8),%mm6
593 pxor 400(%esp,%ebp,8),%mm6
594 xorb (%esp,%ebp,1),%bl
602 pxor 272(%esp,%edi,8),%mm7
606 pinsrw $2,(%esi,%ebx,2),%mm2
607 pxor 16(%esp,%eax,8),%mm7
609 pxor 144(%esp,%eax,8),%mm6
611 pxor 400(%esp,%edi,8),%mm6
612 xorb (%esp,%edi,1),%cl
621 pxor 272(%esp,%ebp,8),%mm7
626 pinsrw $2,(%esi,%ecx,2),%mm1
627 pxor 16(%esp,%eax,8),%mm7
629 pxor 144(%esp,%eax,8),%mm6
631 pxor 400(%esp,%ebp,8),%mm6
632 xorb (%esp,%ebp,1),%bl
640 pxor 272(%esp,%edi,8),%mm7
645 pinsrw $2,(%esi,%ebx,2),%mm0
646 pxor 16(%esp,%eax,8),%mm7
648 pxor 144(%esp,%eax,8),%mm6
650 pxor 400(%esp,%edi,8),%mm6
651 xorb (%esp,%edi,1),%cl
659 pxor 272(%esp,%ebp,8),%mm7
664 pinsrw $2,(%esi,%ecx,2),%mm2
665 pxor 16(%esp,%eax,8),%mm7
667 pxor 144(%esp,%eax,8),%mm6
669 pxor 400(%esp,%ebp,8),%mm6
670 xorb (%esp,%ebp,1),%bl
678 pxor 272(%esp,%edi,8),%mm7
683 pinsrw $2,(%esi,%ebx,2),%mm1
684 pxor 16(%esp,%eax,8),%mm7
686 pxor 144(%esp,%eax,8),%mm6
688 pxor 400(%esp,%edi,8),%mm6
689 xorb (%esp,%edi,1),%cl
698 pxor 272(%esp,%ebp,8),%mm7
703 pinsrw $2,(%esi,%ecx,2),%mm0
704 pxor 16(%esp,%eax,8),%mm7
706 pxor 144(%esp,%eax,8),%mm6
708 pxor 400(%esp,%ebp,8),%mm6
709 xorb (%esp,%ebp,1),%bl
717 pxor 272(%esp,%edi,8),%mm7
722 pinsrw $2,(%esi,%ebx,2),%mm2
723 pxor 16(%esp,%eax,8),%mm7
725 pxor 144(%esp,%eax,8),%mm6
727 pxor 400(%esp,%edi,8),%mm6
728 xorb (%esp,%edi,1),%cl
736 pxor 272(%esp,%ebp,8),%mm7
741 pinsrw $2,(%esi,%ecx,2),%mm1
742 pxor 16(%esp,%eax,8),%mm7
744 pxor 144(%esp,%eax,8),%mm6
746 pxor 400(%esp,%ebp,8),%mm6
747 xorb (%esp,%ebp,1),%bl
755 pxor 272(%esp,%edi,8),%mm7
760 pinsrw $2,(%esi,%ebx,2),%mm0
761 pxor 16(%esp,%eax,8),%mm7
763 pxor 144(%esp,%eax,8),%mm6
765 pxor 400(%esp,%edi,8),%mm6
766 xorb (%esp,%edi,1),%cl
775 pxor 272(%esp,%ebp,8),%mm7
780 pinsrw $2,(%esi,%ecx,2),%mm2
781 pxor 16(%esp,%eax,8),%mm7
783 pxor 144(%esp,%eax,8),%mm6
785 pxor 400(%esp,%ebp,8),%mm6
786 xorb (%esp,%ebp,1),%bl
794 pxor 272(%esp,%edi,8),%mm7
799 pinsrw $2,(%esi,%ebx,2),%mm1
800 pxor 16(%esp,%eax,8),%mm7
802 pxor 144(%esp,%eax,8),%mm6
804 pxor 400(%esp,%edi,8),%mm6
805 xorb (%esp,%edi,1),%cl
813 pxor 272(%esp,%ebp,8),%mm7
818 pinsrw $2,(%esi,%ecx,2),%mm0
819 pxor 16(%esp,%eax,8),%mm7
821 pxor 144(%esp,%eax,8),%mm6
823 pxor 400(%esp,%ebp,8),%mm6
824 xorb (%esp,%ebp,1),%bl
832 pxor 272(%esp,%edi,8),%mm7
837 pinsrw $2,(%esi,%ebx,2),%mm2
838 pxor 16(%esp,%eax,8),%mm7
840 pxor 144(%esp,%eax,8),%mm6
842 pxor 400(%esp,%edi,8),%mm6
843 xorb (%esp,%edi,1),%cl
852 pxor 272(%esp,%ebp,8),%mm7
857 pinsrw $2,(%esi,%ecx,2),%mm1
858 pxor 16(%esp,%eax,8),%mm7
859 pxor 144(%esp,%eax,8),%mm6
860 xorb (%esp,%ebp,1),%bl
862 pxor 400(%esp,%ebp,8),%mm6
871 pxor 16(%esp,%edi,8),%mm7
875 pxor 144(%esp,%edi,8),%mm6
876 pinsrw $2,(%esi,%ebx,2),%mm0
879 pinsrw $3,(%esi,%ecx,2),%mm2
906 .globl _gcm_init_clmul
907 .private_extern _gcm_init_clmul
910 L_gcm_init_clmul_begin:
916 leal Lbswap-L010pic(%ecx),%ecx
918 pshufd $78,%xmm2,%xmm2
919 pshufd $255,%xmm2,%xmm4
931 pshufd $78,%xmm0,%xmm3
932 pshufd $78,%xmm2,%xmm4
935 .byte 102,15,58,68,194,0
936 .byte 102,15,58,68,202,17
937 .byte 102,15,58,68,220,0
965 pshufd $78,%xmm2,%xmm3
966 pshufd $78,%xmm0,%xmm4
970 movdqu %xmm0,16(%edx)
971 .byte 102,15,58,15,227,8
972 movdqu %xmm4,32(%edx)
974 .globl _gcm_gmult_clmul
975 .private_extern _gcm_gmult_clmul
978 L_gcm_gmult_clmul_begin:
984 leal Lbswap-L011pic(%ecx),%ecx
988 .byte 102,15,56,0,197
989 movups 32(%edx),%xmm4
991 pshufd $78,%xmm0,%xmm3
993 .byte 102,15,58,68,194,0
994 .byte 102,15,58,68,202,17
995 .byte 102,15,58,68,220,0
1023 .byte 102,15,56,0,197
1026 .globl _gcm_ghash_clmul
1027 .private_extern _gcm_ghash_clmul
1030 L_gcm_ghash_clmul_begin:
1042 leal Lbswap-L012pic(%ecx),%ecx
1046 .byte 102,15,56,0,197
1050 movdqu 16(%esi),%xmm6
1051 .byte 102,15,56,0,221
1052 .byte 102,15,56,0,245
1053 movdqu 32(%edx),%xmm5
1055 pshufd $78,%xmm6,%xmm3
1059 .byte 102,15,58,68,242,0
1060 .byte 102,15,58,68,250,17
1061 .byte 102,15,58,68,221,0
1062 movups 16(%edx),%xmm2
1069 pshufd $78,%xmm0,%xmm4
1073 .byte 102,15,58,68,194,0
1074 .byte 102,15,58,68,202,17
1075 .byte 102,15,58,68,229,16
1082 movdqu 16(%esi),%xmm6
1084 .byte 102,15,56,0,253
1091 .byte 102,15,56,0,245
1100 .byte 102,15,58,68,242,0
1101 movups 32(%edx),%xmm5
1108 pshufd $78,%xmm7,%xmm3
1113 .byte 102,15,58,68,250,17
1114 movups 16(%edx),%xmm2
1120 .byte 102,15,58,68,221,0
1125 pshufd $78,%xmm0,%xmm4
1128 .byte 102,15,58,68,194,0
1129 .byte 102,15,58,68,202,17
1130 .byte 102,15,58,68,229,16
1167 .byte 102,15,56,0,221
1170 pshufd $78,%xmm0,%xmm3
1171 pshufd $78,%xmm2,%xmm4
1174 .byte 102,15,58,68,194,0
1175 .byte 102,15,58,68,202,17
1176 .byte 102,15,58,68,220,0
1205 .byte 102,15,56,0,197
1214 .byte 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
1215 .byte 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,194
1218 .value 0,450,900,582,1800,1738,1164,1358
1219 .value 3600,4050,3476,3158,2328,2266,2716,2910
1220 .value 7200,7650,8100,7782,6952,6890,6316,6510
1221 .value 4656,5106,4532,4214,5432,5370,5820,6014
1222 .value 14400,14722,15300,14854,16200,16010,15564,15630
1223 .value 13904,14226,13780,13334,12632,12442,13020,13086
1224 .value 9312,9634,10212,9766,9064,8874,8428,8494
1225 .value 10864,11186,10740,10294,11640,11450,12028,12094
1226 .value 28800,28994,29444,29382,30600,30282,29708,30158
1227 .value 32400,32594,32020,31958,31128,30810,31260,31710
1228 .value 27808,28002,28452,28390,27560,27242,26668,27118
1229 .value 25264,25458,24884,24822,26040,25722,26172,26622
1230 .value 18624,18690,19268,19078,20424,19978,19532,19854
1231 .value 18128,18194,17748,17558,16856,16410,16988,17310
1232 .value 21728,21794,22372,22182,21480,21034,20588,20910
1233 .value 23280,23346,22900,22710,24056,23610,24188,24510
1234 .value 57600,57538,57988,58182,58888,59338,58764,58446
1235 .value 61200,61138,60564,60758,59416,59866,60316,59998
1236 .value 64800,64738,65188,65382,64040,64490,63916,63598
1237 .value 62256,62194,61620,61814,62520,62970,63420,63102
1238 .value 55616,55426,56004,56070,56904,57226,56780,56334
1239 .value 55120,54930,54484,54550,53336,53658,54236,53790
1240 .value 50528,50338,50916,50982,49768,50090,49644,49198
1241 .value 52080,51890,51444,51510,52344,52666,53244,52798
1242 .value 37248,36930,37380,37830,38536,38730,38156,38094
1243 .value 40848,40530,39956,40406,39064,39258,39708,39646
1244 .value 36256,35938,36388,36838,35496,35690,35116,35054
1245 .value 33712,33394,32820,33270,33976,34170,34620,34558
1246 .value 43456,43010,43588,43910,44744,44810,44364,44174
1247 .value 42960,42514,42068,42390,41176,41242,41820,41630
1248 .value 46560,46114,46692,47014,45800,45866,45420,45230
1249 .value 48112,47666,47220,47542,48376,48442,49020,48830
1252 .long 0,0,0,471859200,0,943718400,0,610271232
1253 .long 0,1887436800,0,1822425088,0,1220542464,0,1423966208
1254 .long 0,3774873600,0,4246732800,0,3644850176,0,3311403008
1255 .long 0,2441084928,0,2376073216,0,2847932416,0,3051356160
1256 .byte 71,72,65,83,72,32,102,111,114,32,120,56,54,44,32,67
1257 .byte 82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112
1258 .byte 112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62