2 /* Do not modify. This file is auto-generated from ghash-x86_64.pl. */
7 .type gcm_gmult_4bit,@function
12 .cfi_adjust_cfa_offset 8
15 .cfi_adjust_cfa_offset 8
18 .cfi_adjust_cfa_offset 8
21 .cfi_adjust_cfa_offset 8
24 .cfi_adjust_cfa_offset 8
27 .cfi_adjust_cfa_offset 8
30 .cfi_adjust_cfa_offset 280
34 leaq .Lrem_4bit(%rip),%r11
41 movq 8(%rsi,%rax,1),%r8
42 movq (%rsi,%rax,1),%r9
52 movb (%rdi,%rcx,1),%al
54 xorq 8(%rsi,%rbx,1),%r8
56 xorq (%rsi,%rbx,1),%r9
58 xorq (%r11,%rdx,8),%r9
69 xorq 8(%rsi,%rax,1),%r8
71 xorq (%rsi,%rax,1),%r9
73 xorq (%r11,%rdx,8),%r9
84 xorq 8(%rsi,%rax,1),%r8
86 xorq (%rsi,%rax,1),%r9
88 xorq (%r11,%rdx,8),%r9
96 xorq 8(%rsi,%rbx,1),%r8
98 xorq (%rsi,%rbx,1),%r9
100 xorq (%r11,%rdx,8),%r9
107 leaq 280+48(%rsp),%rsi
112 .cfi_def_cfa_register %rsp
116 .size gcm_gmult_4bit,.-gcm_gmult_4bit
117 .globl gcm_ghash_4bit
118 .type gcm_ghash_4bit,@function
123 .cfi_adjust_cfa_offset 8
126 .cfi_adjust_cfa_offset 8
129 .cfi_adjust_cfa_offset 8
132 .cfi_adjust_cfa_offset 8
135 .cfi_adjust_cfa_offset 8
138 .cfi_adjust_cfa_offset 8
141 .cfi_adjust_cfa_offset 280
146 leaq 16+128(%rsp),%rbp
148 movq 0+0-128(%rsi),%r8
149 movq 0+8-128(%rsi),%rax
154 movq 16+0-128(%rsi),%r9
156 movq 16+8-128(%rsi),%rbx
165 movq 32+0-128(%rsi),%r8
167 movq %rax,0-128(%rbp)
168 movq 32+8-128(%rsi),%rax
177 movq 48+0-128(%rsi),%r9
179 movq %rbx,8-128(%rbp)
180 movq 48+8-128(%rsi),%rbx
189 movq 64+0-128(%rsi),%r8
191 movq %rax,16-128(%rbp)
192 movq 64+8-128(%rsi),%rax
201 movq 80+0-128(%rsi),%r9
203 movq %rbx,24-128(%rbp)
204 movq 80+8-128(%rsi),%rbx
213 movq 96+0-128(%rsi),%r8
215 movq %rax,32-128(%rbp)
216 movq 96+8-128(%rsi),%rax
225 movq 112+0-128(%rsi),%r9
227 movq %rbx,40-128(%rbp)
228 movq 112+8-128(%rsi),%rbx
237 movq 128+0-128(%rsi),%r8
239 movq %rax,48-128(%rbp)
240 movq 128+8-128(%rsi),%rax
249 movq 144+0-128(%rsi),%r9
251 movq %rbx,56-128(%rbp)
252 movq 144+8-128(%rsi),%rbx
261 movq 160+0-128(%rsi),%r8
263 movq %rax,64-128(%rbp)
264 movq 160+8-128(%rsi),%rax
273 movq 176+0-128(%rsi),%r9
275 movq %rbx,72-128(%rbp)
276 movq 176+8-128(%rsi),%rbx
285 movq 192+0-128(%rsi),%r8
287 movq %rax,80-128(%rbp)
288 movq 192+8-128(%rsi),%rax
297 movq 208+0-128(%rsi),%r9
299 movq %rbx,88-128(%rbp)
300 movq 208+8-128(%rsi),%rbx
309 movq 224+0-128(%rsi),%r8
311 movq %rax,96-128(%rbp)
312 movq 224+8-128(%rsi),%rax
321 movq 240+0-128(%rsi),%r9
323 movq %rbx,104-128(%rbp)
324 movq 240+8-128(%rsi),%rbx
334 movq %rax,112-128(%rbp)
339 movq %rbx,120-128(%rbp)
344 leaq .Lrem_8bit(%rip),%r11
362 movq 8(%rsi,%rax,1),%r8
363 movq (%rsi,%rax,1),%r9
367 movzbq (%rsp,%rbx,1),%r12
374 xorq -128(%rbp,%rbx,8),%r8
376 xorq (%rbp,%rbx,8),%r9
378 xorq 8(%rsi,%rax,1),%r8
379 xorq (%rsi,%rax,1),%r9
382 movzwq (%r11,%r12,2),%r12
385 movzbq (%rsp,%rcx,1),%r13
394 xorq -128(%rbp,%rcx,8),%r8
396 xorq (%rbp,%rcx,8),%r9
398 xorq 8(%rsi,%rax,1),%r8
399 xorq (%rsi,%rax,1),%r9
402 movzwq (%r11,%r13,2),%r13
405 movzbq (%rsp,%rbx,1),%r12
415 xorq -128(%rbp,%rbx,8),%r8
417 xorq (%rbp,%rbx,8),%r9
419 xorq 8(%rsi,%rax,1),%r8
420 xorq (%rsi,%rax,1),%r9
423 movzwq (%r11,%r12,2),%r12
426 movzbq (%rsp,%rcx,1),%r13
435 xorq -128(%rbp,%rcx,8),%r8
437 xorq (%rbp,%rcx,8),%r9
439 xorq 8(%rsi,%rax,1),%r8
440 xorq (%rsi,%rax,1),%r9
443 movzwq (%r11,%r13,2),%r13
446 movzbq (%rsp,%rbx,1),%r12
455 xorq -128(%rbp,%rbx,8),%r8
457 xorq (%rbp,%rbx,8),%r9
459 xorq 8(%rsi,%rax,1),%r8
460 xorq (%rsi,%rax,1),%r9
463 movzwq (%r11,%r12,2),%r12
466 movzbq (%rsp,%rcx,1),%r13
475 xorq -128(%rbp,%rcx,8),%r8
477 xorq (%rbp,%rcx,8),%r9
479 xorq 8(%rsi,%rax,1),%r8
480 xorq (%rsi,%rax,1),%r9
483 movzwq (%r11,%r13,2),%r13
486 movzbq (%rsp,%rbx,1),%r12
496 xorq -128(%rbp,%rbx,8),%r8
498 xorq (%rbp,%rbx,8),%r9
500 xorq 8(%rsi,%rax,1),%r8
501 xorq (%rsi,%rax,1),%r9
504 movzwq (%r11,%r12,2),%r12
507 movzbq (%rsp,%rcx,1),%r13
516 xorq -128(%rbp,%rcx,8),%r8
518 xorq (%rbp,%rcx,8),%r9
520 xorq 8(%rsi,%rax,1),%r8
521 xorq (%rsi,%rax,1),%r9
524 movzwq (%r11,%r13,2),%r13
527 movzbq (%rsp,%rbx,1),%r12
536 xorq -128(%rbp,%rbx,8),%r8
538 xorq (%rbp,%rbx,8),%r9
540 xorq 8(%rsi,%rax,1),%r8
541 xorq (%rsi,%rax,1),%r9
544 movzwq (%r11,%r12,2),%r12
547 movzbq (%rsp,%rcx,1),%r13
556 xorq -128(%rbp,%rcx,8),%r8
558 xorq (%rbp,%rcx,8),%r9
560 xorq 8(%rsi,%rax,1),%r8
561 xorq (%rsi,%rax,1),%r9
564 movzwq (%r11,%r13,2),%r13
567 movzbq (%rsp,%rbx,1),%r12
577 xorq -128(%rbp,%rbx,8),%r8
579 xorq (%rbp,%rbx,8),%r9
581 xorq 8(%rsi,%rax,1),%r8
582 xorq (%rsi,%rax,1),%r9
585 movzwq (%r11,%r12,2),%r12
588 movzbq (%rsp,%rcx,1),%r13
597 xorq -128(%rbp,%rcx,8),%r8
599 xorq (%rbp,%rcx,8),%r9
601 xorq 8(%rsi,%rax,1),%r8
602 xorq (%rsi,%rax,1),%r9
605 movzwq (%r11,%r13,2),%r13
608 movzbq (%rsp,%rbx,1),%r12
617 xorq -128(%rbp,%rbx,8),%r8
619 xorq (%rbp,%rbx,8),%r9
621 xorq 8(%rsi,%rax,1),%r8
622 xorq (%rsi,%rax,1),%r9
625 movzwq (%r11,%r12,2),%r12
628 movzbq (%rsp,%rcx,1),%r13
637 xorq -128(%rbp,%rcx,8),%r8
639 xorq (%rbp,%rcx,8),%r9
641 xorq 8(%rsi,%rax,1),%r8
642 xorq (%rsi,%rax,1),%r9
645 movzwq (%r11,%r13,2),%r13
648 movzbq (%rsp,%rbx,1),%r12
658 xorq -128(%rbp,%rbx,8),%r8
660 xorq (%rbp,%rbx,8),%r9
661 movzwq (%r11,%r12,2),%r12
662 xorq 8(%rsi,%rax,1),%r8
663 xorq (%rsi,%rax,1),%r9
672 xorq 8(%rsi,%rcx,1),%r8
673 movzwq (%r11,%r13,2),%r13
675 xorq (%rsi,%rcx,1),%r9
686 leaq 280+48(%rsp),%rsi
701 .cfi_def_cfa_register %rsp
705 .size gcm_ghash_4bit,.-gcm_ghash_4bit
706 .globl gcm_init_clmul
707 .type gcm_init_clmul,@function
712 pshufd $78,%xmm2,%xmm2
715 pshufd $255,%xmm2,%xmm4
725 pand .L0x1c2_polynomial(%rip),%xmm5
729 pshufd $78,%xmm2,%xmm6
733 pshufd $78,%xmm0,%xmm3
735 .byte 102,15,58,68,194,0
736 .byte 102,15,58,68,202,17
737 .byte 102,15,58,68,222,0
769 pshufd $78,%xmm2,%xmm3
770 pshufd $78,%xmm0,%xmm4
774 movdqu %xmm0,16(%rdi)
775 .byte 102,15,58,15,227,8
776 movdqu %xmm4,32(%rdi)
778 pshufd $78,%xmm0,%xmm3
780 .byte 102,15,58,68,194,0
781 .byte 102,15,58,68,202,17
782 .byte 102,15,58,68,222,0
816 pshufd $78,%xmm0,%xmm3
818 .byte 102,15,58,68,194,0
819 .byte 102,15,58,68,202,17
820 .byte 102,15,58,68,222,0
852 pshufd $78,%xmm5,%xmm3
853 pshufd $78,%xmm0,%xmm4
855 movdqu %xmm5,48(%rdi)
857 movdqu %xmm0,64(%rdi)
858 .byte 102,15,58,15,227,8
859 movdqu %xmm4,80(%rdi)
861 .size gcm_init_clmul,.-gcm_init_clmul
862 .globl gcm_gmult_clmul
863 .type gcm_gmult_clmul,@function
868 movdqa .Lbswap_mask(%rip),%xmm5
870 movdqu 32(%rsi),%xmm4
871 .byte 102,15,56,0,197
873 pshufd $78,%xmm0,%xmm3
875 .byte 102,15,58,68,194,0
876 .byte 102,15,58,68,202,17
877 .byte 102,15,58,68,220,0
909 .byte 102,15,56,0,197
912 .size gcm_gmult_clmul,.-gcm_gmult_clmul
913 .globl gcm_ghash_clmul
914 .type gcm_ghash_clmul,@function
918 movdqa .Lbswap_mask(%rip),%xmm10
922 movdqu 32(%rsi),%xmm7
923 .byte 102,65,15,56,0,194
928 movdqu 16(%rsi),%xmm6
929 movl OPENSSL_ia32cap_P+4(%rip),%eax
938 movq $0xA040608020C0E000,%rax
939 movdqu 48(%rsi),%xmm14
940 movdqu 64(%rsi),%xmm15
945 movdqu 48(%rdx),%xmm3
946 movdqu 32(%rdx),%xmm11
947 .byte 102,65,15,56,0,218
948 .byte 102,69,15,56,0,218
950 pshufd $78,%xmm3,%xmm4
952 .byte 102,15,58,68,218,0
953 .byte 102,15,58,68,234,17
954 .byte 102,15,58,68,231,0
957 pshufd $78,%xmm11,%xmm12
959 .byte 102,68,15,58,68,222,0
960 .byte 102,68,15,58,68,238,17
961 .byte 102,68,15,58,68,231,16
964 movups 80(%rsi),%xmm7
967 movdqu 16(%rdx),%xmm11
969 .byte 102,69,15,56,0,218
970 .byte 102,69,15,56,0,194
972 pshufd $78,%xmm11,%xmm12
975 .byte 102,69,15,58,68,222,0
977 pshufd $78,%xmm0,%xmm8
979 .byte 102,69,15,58,68,238,17
980 .byte 102,68,15,58,68,231,0
991 .byte 102,65,15,58,68,199,0
993 movdqu 48(%rdx),%xmm11
994 .byte 102,69,15,56,0,218
995 .byte 102,65,15,58,68,207,17
997 movdqu 32(%rdx),%xmm3
999 .byte 102,68,15,58,68,199,16
1000 pshufd $78,%xmm11,%xmm12
1003 .byte 102,65,15,56,0,218
1004 movups 32(%rsi),%xmm7
1006 .byte 102,68,15,58,68,218,0
1007 pshufd $78,%xmm3,%xmm4
1014 .byte 102,68,15,58,68,234,17
1018 movdqa .L7_mask(%rip),%xmm8
1020 .byte 102,76,15,110,200
1023 .byte 102,69,15,56,0,200
1025 .byte 102,68,15,58,68,231,0
1029 .byte 102,15,58,68,222,0
1033 movdqu 0(%rdx),%xmm8
1037 .byte 102,15,58,68,238,17
1039 movdqu 16(%rdx),%xmm11
1040 .byte 102,69,15,56,0,218
1041 .byte 102,15,58,68,231,16
1043 movups 80(%rsi),%xmm7
1044 .byte 102,69,15,56,0,194
1049 movdqa %xmm11,%xmm13
1051 pshufd $78,%xmm11,%xmm12
1055 .byte 102,69,15,58,68,222,0
1059 .byte 102,69,15,58,68,238,17
1061 pshufd $78,%xmm0,%xmm8
1064 .byte 102,68,15,58,68,231,0
1072 .byte 102,65,15,58,68,199,0
1073 .byte 102,65,15,58,68,207,17
1074 .byte 102,68,15,58,68,199,16
1114 movdqu 32(%rsi),%xmm7
1124 movdqu 16(%rdx),%xmm3
1125 .byte 102,69,15,56,0,194
1126 .byte 102,65,15,56,0,218
1130 pshufd $78,%xmm3,%xmm4
1132 .byte 102,15,58,68,218,0
1133 .byte 102,15,58,68,234,17
1134 .byte 102,15,58,68,231,0
1147 pshufd $78,%xmm0,%xmm4
1150 .byte 102,15,58,68,198,0
1151 .byte 102,15,58,68,206,17
1152 .byte 102,15,58,68,231,16
1158 .byte 102,69,15,56,0,202
1159 movdqu 16(%rdx),%xmm3
1164 .byte 102,65,15,56,0,218
1177 .byte 102,15,58,68,218,0
1185 pshufd $78,%xmm5,%xmm4
1191 .byte 102,15,58,68,234,17
1198 .byte 102,15,58,68,231,0
1207 pshufd $78,%xmm0,%xmm4
1210 .byte 102,15,58,68,198,0
1211 .byte 102,15,58,68,206,17
1212 .byte 102,15,58,68,231,16
1252 .byte 102,69,15,56,0,194
1255 pshufd $78,%xmm0,%xmm3
1257 .byte 102,15,58,68,194,0
1258 .byte 102,15,58,68,202,17
1259 .byte 102,15,58,68,223,0
1292 .byte 102,65,15,56,0,194
1295 .size gcm_ghash_clmul,.-gcm_ghash_clmul
1297 .type gcm_init_avx,@function
1302 vmovdqu (%rsi),%xmm2
1303 vpshufd $78,%xmm2,%xmm2
1306 vpshufd $255,%xmm2,%xmm4
1307 vpsrlq $63,%xmm2,%xmm3
1308 vpsllq $1,%xmm2,%xmm2
1309 vpxor %xmm5,%xmm5,%xmm5
1310 vpcmpgtd %xmm4,%xmm5,%xmm5
1311 vpslldq $8,%xmm3,%xmm3
1312 vpor %xmm3,%xmm2,%xmm2
1315 vpand .L0x1c2_polynomial(%rip),%xmm5,%xmm5
1316 vpxor %xmm5,%xmm2,%xmm2
1318 vpunpckhqdq %xmm2,%xmm2,%xmm6
1320 vpxor %xmm2,%xmm6,%xmm6
1322 jmp .Linit_start_avx
1325 vpalignr $8,%xmm3,%xmm4,%xmm5
1326 vmovdqu %xmm5,-16(%rdi)
1327 vpunpckhqdq %xmm0,%xmm0,%xmm3
1328 vpxor %xmm0,%xmm3,%xmm3
1329 vpclmulqdq $0x11,%xmm2,%xmm0,%xmm1
1330 vpclmulqdq $0x00,%xmm2,%xmm0,%xmm0
1331 vpclmulqdq $0x00,%xmm6,%xmm3,%xmm3
1332 vpxor %xmm0,%xmm1,%xmm4
1333 vpxor %xmm4,%xmm3,%xmm3
1335 vpslldq $8,%xmm3,%xmm4
1336 vpsrldq $8,%xmm3,%xmm3
1337 vpxor %xmm4,%xmm0,%xmm0
1338 vpxor %xmm3,%xmm1,%xmm1
1339 vpsllq $57,%xmm0,%xmm3
1340 vpsllq $62,%xmm0,%xmm4
1341 vpxor %xmm3,%xmm4,%xmm4
1342 vpsllq $63,%xmm0,%xmm3
1343 vpxor %xmm3,%xmm4,%xmm4
1344 vpslldq $8,%xmm4,%xmm3
1345 vpsrldq $8,%xmm4,%xmm4
1346 vpxor %xmm3,%xmm0,%xmm0
1347 vpxor %xmm4,%xmm1,%xmm1
1349 vpsrlq $1,%xmm0,%xmm4
1350 vpxor %xmm0,%xmm1,%xmm1
1351 vpxor %xmm4,%xmm0,%xmm0
1352 vpsrlq $5,%xmm4,%xmm4
1353 vpxor %xmm4,%xmm0,%xmm0
1354 vpsrlq $1,%xmm0,%xmm0
1355 vpxor %xmm1,%xmm0,%xmm0
1358 vpunpckhqdq %xmm0,%xmm0,%xmm3
1359 vpxor %xmm0,%xmm3,%xmm3
1360 vpclmulqdq $0x11,%xmm2,%xmm0,%xmm1
1361 vpclmulqdq $0x00,%xmm2,%xmm0,%xmm0
1362 vpclmulqdq $0x00,%xmm6,%xmm3,%xmm3
1363 vpxor %xmm0,%xmm1,%xmm4
1364 vpxor %xmm4,%xmm3,%xmm3
1366 vpslldq $8,%xmm3,%xmm4
1367 vpsrldq $8,%xmm3,%xmm3
1368 vpxor %xmm4,%xmm0,%xmm0
1369 vpxor %xmm3,%xmm1,%xmm1
1370 vpsllq $57,%xmm0,%xmm3
1371 vpsllq $62,%xmm0,%xmm4
1372 vpxor %xmm3,%xmm4,%xmm4
1373 vpsllq $63,%xmm0,%xmm3
1374 vpxor %xmm3,%xmm4,%xmm4
1375 vpslldq $8,%xmm4,%xmm3
1376 vpsrldq $8,%xmm4,%xmm4
1377 vpxor %xmm3,%xmm0,%xmm0
1378 vpxor %xmm4,%xmm1,%xmm1
1380 vpsrlq $1,%xmm0,%xmm4
1381 vpxor %xmm0,%xmm1,%xmm1
1382 vpxor %xmm4,%xmm0,%xmm0
1383 vpsrlq $5,%xmm4,%xmm4
1384 vpxor %xmm4,%xmm0,%xmm0
1385 vpsrlq $1,%xmm0,%xmm0
1386 vpxor %xmm1,%xmm0,%xmm0
1387 vpshufd $78,%xmm5,%xmm3
1388 vpshufd $78,%xmm0,%xmm4
1389 vpxor %xmm5,%xmm3,%xmm3
1390 vmovdqu %xmm5,0(%rdi)
1391 vpxor %xmm0,%xmm4,%xmm4
1392 vmovdqu %xmm0,16(%rdi)
1397 vpalignr $8,%xmm4,%xmm3,%xmm5
1398 vmovdqu %xmm5,-16(%rdi)
1402 .size gcm_init_avx,.-gcm_init_avx
1403 .globl gcm_gmult_avx
1404 .type gcm_gmult_avx,@function
1408 .size gcm_gmult_avx,.-gcm_gmult_avx
1409 .globl gcm_ghash_avx
1410 .type gcm_ghash_avx,@function
1415 vmovdqu (%rdi),%xmm10
1416 leaq .L0x1c2_polynomial(%rip),%r10
1418 vmovdqu .Lbswap_mask(%rip),%xmm13
1419 vpshufb %xmm13,%xmm10,%xmm10
1424 vmovdqu 112(%rdx),%xmm14
1425 vmovdqu 0-64(%rsi),%xmm6
1426 vpshufb %xmm13,%xmm14,%xmm14
1427 vmovdqu 32-64(%rsi),%xmm7
1429 vpunpckhqdq %xmm14,%xmm14,%xmm9
1430 vmovdqu 96(%rdx),%xmm15
1431 vpclmulqdq $0x00,%xmm6,%xmm14,%xmm0
1432 vpxor %xmm14,%xmm9,%xmm9
1433 vpshufb %xmm13,%xmm15,%xmm15
1434 vpclmulqdq $0x11,%xmm6,%xmm14,%xmm1
1435 vmovdqu 16-64(%rsi),%xmm6
1436 vpunpckhqdq %xmm15,%xmm15,%xmm8
1437 vmovdqu 80(%rdx),%xmm14
1438 vpclmulqdq $0x00,%xmm7,%xmm9,%xmm2
1439 vpxor %xmm15,%xmm8,%xmm8
1441 vpshufb %xmm13,%xmm14,%xmm14
1442 vpclmulqdq $0x00,%xmm6,%xmm15,%xmm3
1443 vpunpckhqdq %xmm14,%xmm14,%xmm9
1444 vpclmulqdq $0x11,%xmm6,%xmm15,%xmm4
1445 vmovdqu 48-64(%rsi),%xmm6
1446 vpxor %xmm14,%xmm9,%xmm9
1447 vmovdqu 64(%rdx),%xmm15
1448 vpclmulqdq $0x10,%xmm7,%xmm8,%xmm5
1449 vmovdqu 80-64(%rsi),%xmm7
1451 vpshufb %xmm13,%xmm15,%xmm15
1452 vpxor %xmm0,%xmm3,%xmm3
1453 vpclmulqdq $0x00,%xmm6,%xmm14,%xmm0
1454 vpxor %xmm1,%xmm4,%xmm4
1455 vpunpckhqdq %xmm15,%xmm15,%xmm8
1456 vpclmulqdq $0x11,%xmm6,%xmm14,%xmm1
1457 vmovdqu 64-64(%rsi),%xmm6
1458 vpxor %xmm2,%xmm5,%xmm5
1459 vpclmulqdq $0x00,%xmm7,%xmm9,%xmm2
1460 vpxor %xmm15,%xmm8,%xmm8
1462 vmovdqu 48(%rdx),%xmm14
1463 vpxor %xmm3,%xmm0,%xmm0
1464 vpclmulqdq $0x00,%xmm6,%xmm15,%xmm3
1465 vpxor %xmm4,%xmm1,%xmm1
1466 vpshufb %xmm13,%xmm14,%xmm14
1467 vpclmulqdq $0x11,%xmm6,%xmm15,%xmm4
1468 vmovdqu 96-64(%rsi),%xmm6
1469 vpxor %xmm5,%xmm2,%xmm2
1470 vpunpckhqdq %xmm14,%xmm14,%xmm9
1471 vpclmulqdq $0x10,%xmm7,%xmm8,%xmm5
1472 vmovdqu 128-64(%rsi),%xmm7
1473 vpxor %xmm14,%xmm9,%xmm9
1475 vmovdqu 32(%rdx),%xmm15
1476 vpxor %xmm0,%xmm3,%xmm3
1477 vpclmulqdq $0x00,%xmm6,%xmm14,%xmm0
1478 vpxor %xmm1,%xmm4,%xmm4
1479 vpshufb %xmm13,%xmm15,%xmm15
1480 vpclmulqdq $0x11,%xmm6,%xmm14,%xmm1
1481 vmovdqu 112-64(%rsi),%xmm6
1482 vpxor %xmm2,%xmm5,%xmm5
1483 vpunpckhqdq %xmm15,%xmm15,%xmm8
1484 vpclmulqdq $0x00,%xmm7,%xmm9,%xmm2
1485 vpxor %xmm15,%xmm8,%xmm8
1487 vmovdqu 16(%rdx),%xmm14
1488 vpxor %xmm3,%xmm0,%xmm0
1489 vpclmulqdq $0x00,%xmm6,%xmm15,%xmm3
1490 vpxor %xmm4,%xmm1,%xmm1
1491 vpshufb %xmm13,%xmm14,%xmm14
1492 vpclmulqdq $0x11,%xmm6,%xmm15,%xmm4
1493 vmovdqu 144-64(%rsi),%xmm6
1494 vpxor %xmm5,%xmm2,%xmm2
1495 vpunpckhqdq %xmm14,%xmm14,%xmm9
1496 vpclmulqdq $0x10,%xmm7,%xmm8,%xmm5
1497 vmovdqu 176-64(%rsi),%xmm7
1498 vpxor %xmm14,%xmm9,%xmm9
1500 vmovdqu (%rdx),%xmm15
1501 vpxor %xmm0,%xmm3,%xmm3
1502 vpclmulqdq $0x00,%xmm6,%xmm14,%xmm0
1503 vpxor %xmm1,%xmm4,%xmm4
1504 vpshufb %xmm13,%xmm15,%xmm15
1505 vpclmulqdq $0x11,%xmm6,%xmm14,%xmm1
1506 vmovdqu 160-64(%rsi),%xmm6
1507 vpxor %xmm2,%xmm5,%xmm5
1508 vpclmulqdq $0x10,%xmm7,%xmm9,%xmm2
1514 vpxor %xmm10,%xmm15,%xmm15
1520 vpunpckhqdq %xmm15,%xmm15,%xmm8
1521 vmovdqu 112(%rdx),%xmm14
1522 vpxor %xmm0,%xmm3,%xmm3
1523 vpxor %xmm15,%xmm8,%xmm8
1524 vpclmulqdq $0x00,%xmm6,%xmm15,%xmm10
1525 vpshufb %xmm13,%xmm14,%xmm14
1526 vpxor %xmm1,%xmm4,%xmm4
1527 vpclmulqdq $0x11,%xmm6,%xmm15,%xmm11
1528 vmovdqu 0-64(%rsi),%xmm6
1529 vpunpckhqdq %xmm14,%xmm14,%xmm9
1530 vpxor %xmm2,%xmm5,%xmm5
1531 vpclmulqdq $0x00,%xmm7,%xmm8,%xmm12
1532 vmovdqu 32-64(%rsi),%xmm7
1533 vpxor %xmm14,%xmm9,%xmm9
1535 vmovdqu 96(%rdx),%xmm15
1536 vpclmulqdq $0x00,%xmm6,%xmm14,%xmm0
1537 vpxor %xmm3,%xmm10,%xmm10
1538 vpshufb %xmm13,%xmm15,%xmm15
1539 vpclmulqdq $0x11,%xmm6,%xmm14,%xmm1
1540 vxorps %xmm4,%xmm11,%xmm11
1541 vmovdqu 16-64(%rsi),%xmm6
1542 vpunpckhqdq %xmm15,%xmm15,%xmm8
1543 vpclmulqdq $0x00,%xmm7,%xmm9,%xmm2
1544 vpxor %xmm5,%xmm12,%xmm12
1545 vxorps %xmm15,%xmm8,%xmm8
1547 vmovdqu 80(%rdx),%xmm14
1548 vpxor %xmm10,%xmm12,%xmm12
1549 vpclmulqdq $0x00,%xmm6,%xmm15,%xmm3
1550 vpxor %xmm11,%xmm12,%xmm12
1551 vpslldq $8,%xmm12,%xmm9
1552 vpxor %xmm0,%xmm3,%xmm3
1553 vpclmulqdq $0x11,%xmm6,%xmm15,%xmm4
1554 vpsrldq $8,%xmm12,%xmm12
1555 vpxor %xmm9,%xmm10,%xmm10
1556 vmovdqu 48-64(%rsi),%xmm6
1557 vpshufb %xmm13,%xmm14,%xmm14
1558 vxorps %xmm12,%xmm11,%xmm11
1559 vpxor %xmm1,%xmm4,%xmm4
1560 vpunpckhqdq %xmm14,%xmm14,%xmm9
1561 vpclmulqdq $0x10,%xmm7,%xmm8,%xmm5
1562 vmovdqu 80-64(%rsi),%xmm7
1563 vpxor %xmm14,%xmm9,%xmm9
1564 vpxor %xmm2,%xmm5,%xmm5
1566 vmovdqu 64(%rdx),%xmm15
1567 vpalignr $8,%xmm10,%xmm10,%xmm12
1568 vpclmulqdq $0x00,%xmm6,%xmm14,%xmm0
1569 vpshufb %xmm13,%xmm15,%xmm15
1570 vpxor %xmm3,%xmm0,%xmm0
1571 vpclmulqdq $0x11,%xmm6,%xmm14,%xmm1
1572 vmovdqu 64-64(%rsi),%xmm6
1573 vpunpckhqdq %xmm15,%xmm15,%xmm8
1574 vpxor %xmm4,%xmm1,%xmm1
1575 vpclmulqdq $0x00,%xmm7,%xmm9,%xmm2
1576 vxorps %xmm15,%xmm8,%xmm8
1577 vpxor %xmm5,%xmm2,%xmm2
1579 vmovdqu 48(%rdx),%xmm14
1580 vpclmulqdq $0x10,(%r10),%xmm10,%xmm10
1581 vpclmulqdq $0x00,%xmm6,%xmm15,%xmm3
1582 vpshufb %xmm13,%xmm14,%xmm14
1583 vpxor %xmm0,%xmm3,%xmm3
1584 vpclmulqdq $0x11,%xmm6,%xmm15,%xmm4
1585 vmovdqu 96-64(%rsi),%xmm6
1586 vpunpckhqdq %xmm14,%xmm14,%xmm9
1587 vpxor %xmm1,%xmm4,%xmm4
1588 vpclmulqdq $0x10,%xmm7,%xmm8,%xmm5
1589 vmovdqu 128-64(%rsi),%xmm7
1590 vpxor %xmm14,%xmm9,%xmm9
1591 vpxor %xmm2,%xmm5,%xmm5
1593 vmovdqu 32(%rdx),%xmm15
1594 vpclmulqdq $0x00,%xmm6,%xmm14,%xmm0
1595 vpshufb %xmm13,%xmm15,%xmm15
1596 vpxor %xmm3,%xmm0,%xmm0
1597 vpclmulqdq $0x11,%xmm6,%xmm14,%xmm1
1598 vmovdqu 112-64(%rsi),%xmm6
1599 vpunpckhqdq %xmm15,%xmm15,%xmm8
1600 vpxor %xmm4,%xmm1,%xmm1
1601 vpclmulqdq $0x00,%xmm7,%xmm9,%xmm2
1602 vpxor %xmm15,%xmm8,%xmm8
1603 vpxor %xmm5,%xmm2,%xmm2
1604 vxorps %xmm12,%xmm10,%xmm10
1606 vmovdqu 16(%rdx),%xmm14
1607 vpalignr $8,%xmm10,%xmm10,%xmm12
1608 vpclmulqdq $0x00,%xmm6,%xmm15,%xmm3
1609 vpshufb %xmm13,%xmm14,%xmm14
1610 vpxor %xmm0,%xmm3,%xmm3
1611 vpclmulqdq $0x11,%xmm6,%xmm15,%xmm4
1612 vmovdqu 144-64(%rsi),%xmm6
1613 vpclmulqdq $0x10,(%r10),%xmm10,%xmm10
1614 vxorps %xmm11,%xmm12,%xmm12
1615 vpunpckhqdq %xmm14,%xmm14,%xmm9
1616 vpxor %xmm1,%xmm4,%xmm4
1617 vpclmulqdq $0x10,%xmm7,%xmm8,%xmm5
1618 vmovdqu 176-64(%rsi),%xmm7
1619 vpxor %xmm14,%xmm9,%xmm9
1620 vpxor %xmm2,%xmm5,%xmm5
1622 vmovdqu (%rdx),%xmm15
1623 vpclmulqdq $0x00,%xmm6,%xmm14,%xmm0
1624 vpshufb %xmm13,%xmm15,%xmm15
1625 vpclmulqdq $0x11,%xmm6,%xmm14,%xmm1
1626 vmovdqu 160-64(%rsi),%xmm6
1627 vpxor %xmm12,%xmm15,%xmm15
1628 vpclmulqdq $0x10,%xmm7,%xmm9,%xmm2
1629 vpxor %xmm10,%xmm15,%xmm15
1636 jmp .Ltail_no_xor_avx
1640 vmovdqu -16(%rdx,%rcx,1),%xmm14
1641 leaq (%rdx,%rcx,1),%rdx
1642 vmovdqu 0-64(%rsi),%xmm6
1643 vmovdqu 32-64(%rsi),%xmm7
1644 vpshufb %xmm13,%xmm14,%xmm15
1652 vpunpckhqdq %xmm15,%xmm15,%xmm8
1653 vpxor %xmm0,%xmm3,%xmm3
1654 vpclmulqdq $0x00,%xmm6,%xmm15,%xmm0
1655 vpxor %xmm15,%xmm8,%xmm8
1656 vmovdqu -32(%rdx),%xmm14
1657 vpxor %xmm1,%xmm4,%xmm4
1658 vpclmulqdq $0x11,%xmm6,%xmm15,%xmm1
1659 vmovdqu 16-64(%rsi),%xmm6
1660 vpshufb %xmm13,%xmm14,%xmm15
1661 vpxor %xmm2,%xmm5,%xmm5
1662 vpclmulqdq $0x00,%xmm7,%xmm8,%xmm2
1663 vpsrldq $8,%xmm7,%xmm7
1667 vpunpckhqdq %xmm15,%xmm15,%xmm8
1668 vpxor %xmm0,%xmm3,%xmm3
1669 vpclmulqdq $0x00,%xmm6,%xmm15,%xmm0
1670 vpxor %xmm15,%xmm8,%xmm8
1671 vmovdqu -48(%rdx),%xmm14
1672 vpxor %xmm1,%xmm4,%xmm4
1673 vpclmulqdq $0x11,%xmm6,%xmm15,%xmm1
1674 vmovdqu 48-64(%rsi),%xmm6
1675 vpshufb %xmm13,%xmm14,%xmm15
1676 vpxor %xmm2,%xmm5,%xmm5
1677 vpclmulqdq $0x00,%xmm7,%xmm8,%xmm2
1678 vmovdqu 80-64(%rsi),%xmm7
1682 vpunpckhqdq %xmm15,%xmm15,%xmm8
1683 vpxor %xmm0,%xmm3,%xmm3
1684 vpclmulqdq $0x00,%xmm6,%xmm15,%xmm0
1685 vpxor %xmm15,%xmm8,%xmm8
1686 vmovdqu -64(%rdx),%xmm14
1687 vpxor %xmm1,%xmm4,%xmm4
1688 vpclmulqdq $0x11,%xmm6,%xmm15,%xmm1
1689 vmovdqu 64-64(%rsi),%xmm6
1690 vpshufb %xmm13,%xmm14,%xmm15
1691 vpxor %xmm2,%xmm5,%xmm5
1692 vpclmulqdq $0x00,%xmm7,%xmm8,%xmm2
1693 vpsrldq $8,%xmm7,%xmm7
1697 vpunpckhqdq %xmm15,%xmm15,%xmm8
1698 vpxor %xmm0,%xmm3,%xmm3
1699 vpclmulqdq $0x00,%xmm6,%xmm15,%xmm0
1700 vpxor %xmm15,%xmm8,%xmm8
1701 vmovdqu -80(%rdx),%xmm14
1702 vpxor %xmm1,%xmm4,%xmm4
1703 vpclmulqdq $0x11,%xmm6,%xmm15,%xmm1
1704 vmovdqu 96-64(%rsi),%xmm6
1705 vpshufb %xmm13,%xmm14,%xmm15
1706 vpxor %xmm2,%xmm5,%xmm5
1707 vpclmulqdq $0x00,%xmm7,%xmm8,%xmm2
1708 vmovdqu 128-64(%rsi),%xmm7
1712 vpunpckhqdq %xmm15,%xmm15,%xmm8
1713 vpxor %xmm0,%xmm3,%xmm3
1714 vpclmulqdq $0x00,%xmm6,%xmm15,%xmm0
1715 vpxor %xmm15,%xmm8,%xmm8
1716 vmovdqu -96(%rdx),%xmm14
1717 vpxor %xmm1,%xmm4,%xmm4
1718 vpclmulqdq $0x11,%xmm6,%xmm15,%xmm1
1719 vmovdqu 112-64(%rsi),%xmm6
1720 vpshufb %xmm13,%xmm14,%xmm15
1721 vpxor %xmm2,%xmm5,%xmm5
1722 vpclmulqdq $0x00,%xmm7,%xmm8,%xmm2
1723 vpsrldq $8,%xmm7,%xmm7
1727 vpunpckhqdq %xmm15,%xmm15,%xmm8
1728 vpxor %xmm0,%xmm3,%xmm3
1729 vpclmulqdq $0x00,%xmm6,%xmm15,%xmm0
1730 vpxor %xmm15,%xmm8,%xmm8
1731 vmovdqu -112(%rdx),%xmm14
1732 vpxor %xmm1,%xmm4,%xmm4
1733 vpclmulqdq $0x11,%xmm6,%xmm15,%xmm1
1734 vmovdqu 144-64(%rsi),%xmm6
1735 vpshufb %xmm13,%xmm14,%xmm15
1736 vpxor %xmm2,%xmm5,%xmm5
1737 vpclmulqdq $0x00,%xmm7,%xmm8,%xmm2
1738 vmovq 184-64(%rsi),%xmm7
1744 vpxor %xmm10,%xmm15,%xmm15
1746 vpunpckhqdq %xmm15,%xmm15,%xmm8
1747 vpxor %xmm0,%xmm3,%xmm3
1748 vpclmulqdq $0x00,%xmm6,%xmm15,%xmm0
1749 vpxor %xmm15,%xmm8,%xmm8
1750 vpxor %xmm1,%xmm4,%xmm4
1751 vpclmulqdq $0x11,%xmm6,%xmm15,%xmm1
1752 vpxor %xmm2,%xmm5,%xmm5
1753 vpclmulqdq $0x00,%xmm7,%xmm8,%xmm2
1755 vmovdqu (%r10),%xmm12
1757 vpxor %xmm0,%xmm3,%xmm10
1758 vpxor %xmm1,%xmm4,%xmm11
1759 vpxor %xmm2,%xmm5,%xmm5
1761 vpxor %xmm10,%xmm5,%xmm5
1762 vpxor %xmm11,%xmm5,%xmm5
1763 vpslldq $8,%xmm5,%xmm9
1764 vpsrldq $8,%xmm5,%xmm5
1765 vpxor %xmm9,%xmm10,%xmm10
1766 vpxor %xmm5,%xmm11,%xmm11
1768 vpclmulqdq $0x10,%xmm12,%xmm10,%xmm9
1769 vpalignr $8,%xmm10,%xmm10,%xmm10
1770 vpxor %xmm9,%xmm10,%xmm10
1772 vpclmulqdq $0x10,%xmm12,%xmm10,%xmm9
1773 vpalignr $8,%xmm10,%xmm10,%xmm10
1774 vpxor %xmm11,%xmm10,%xmm10
1775 vpxor %xmm9,%xmm10,%xmm10
1780 vpshufb %xmm13,%xmm10,%xmm10
1781 vmovdqu %xmm10,(%rdi)
1784 .size gcm_ghash_avx,.-gcm_ghash_avx
1787 .byte 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
1789 .byte 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xc2
1795 .type .Lrem_4bit,@object
1797 .long 0,0,0,471859200,0,943718400,0,610271232
1798 .long 0,1887436800,0,1822425088,0,1220542464,0,1423966208
1799 .long 0,3774873600,0,4246732800,0,3644850176,0,3311403008
1800 .long 0,2441084928,0,2376073216,0,2847932416,0,3051356160
1801 .type .Lrem_8bit,@object
1803 .value 0x0000,0x01C2,0x0384,0x0246,0x0708,0x06CA,0x048C,0x054E
1804 .value 0x0E10,0x0FD2,0x0D94,0x0C56,0x0918,0x08DA,0x0A9C,0x0B5E
1805 .value 0x1C20,0x1DE2,0x1FA4,0x1E66,0x1B28,0x1AEA,0x18AC,0x196E
1806 .value 0x1230,0x13F2,0x11B4,0x1076,0x1538,0x14FA,0x16BC,0x177E
1807 .value 0x3840,0x3982,0x3BC4,0x3A06,0x3F48,0x3E8A,0x3CCC,0x3D0E
1808 .value 0x3650,0x3792,0x35D4,0x3416,0x3158,0x309A,0x32DC,0x331E
1809 .value 0x2460,0x25A2,0x27E4,0x2626,0x2368,0x22AA,0x20EC,0x212E
1810 .value 0x2A70,0x2BB2,0x29F4,0x2836,0x2D78,0x2CBA,0x2EFC,0x2F3E
1811 .value 0x7080,0x7142,0x7304,0x72C6,0x7788,0x764A,0x740C,0x75CE
1812 .value 0x7E90,0x7F52,0x7D14,0x7CD6,0x7998,0x785A,0x7A1C,0x7BDE
1813 .value 0x6CA0,0x6D62,0x6F24,0x6EE6,0x6BA8,0x6A6A,0x682C,0x69EE
1814 .value 0x62B0,0x6372,0x6134,0x60F6,0x65B8,0x647A,0x663C,0x67FE
1815 .value 0x48C0,0x4902,0x4B44,0x4A86,0x4FC8,0x4E0A,0x4C4C,0x4D8E
1816 .value 0x46D0,0x4712,0x4554,0x4496,0x41D8,0x401A,0x425C,0x439E
1817 .value 0x54E0,0x5522,0x5764,0x56A6,0x53E8,0x522A,0x506C,0x51AE
1818 .value 0x5AF0,0x5B32,0x5974,0x58B6,0x5DF8,0x5C3A,0x5E7C,0x5FBE
1819 .value 0xE100,0xE0C2,0xE284,0xE346,0xE608,0xE7CA,0xE58C,0xE44E
1820 .value 0xEF10,0xEED2,0xEC94,0xED56,0xE818,0xE9DA,0xEB9C,0xEA5E
1821 .value 0xFD20,0xFCE2,0xFEA4,0xFF66,0xFA28,0xFBEA,0xF9AC,0xF86E
1822 .value 0xF330,0xF2F2,0xF0B4,0xF176,0xF438,0xF5FA,0xF7BC,0xF67E
1823 .value 0xD940,0xD882,0xDAC4,0xDB06,0xDE48,0xDF8A,0xDDCC,0xDC0E
1824 .value 0xD750,0xD692,0xD4D4,0xD516,0xD058,0xD19A,0xD3DC,0xD21E
1825 .value 0xC560,0xC4A2,0xC6E4,0xC726,0xC268,0xC3AA,0xC1EC,0xC02E
1826 .value 0xCB70,0xCAB2,0xC8F4,0xC936,0xCC78,0xCDBA,0xCFFC,0xCE3E
1827 .value 0x9180,0x9042,0x9204,0x93C6,0x9688,0x974A,0x950C,0x94CE
1828 .value 0x9F90,0x9E52,0x9C14,0x9DD6,0x9898,0x995A,0x9B1C,0x9ADE
1829 .value 0x8DA0,0x8C62,0x8E24,0x8FE6,0x8AA8,0x8B6A,0x892C,0x88EE
1830 .value 0x83B0,0x8272,0x8034,0x81F6,0x84B8,0x857A,0x873C,0x86FE
1831 .value 0xA9C0,0xA802,0xAA44,0xAB86,0xAEC8,0xAF0A,0xAD4C,0xAC8E
1832 .value 0xA7D0,0xA612,0xA454,0xA596,0xA0D8,0xA11A,0xA35C,0xA29E
1833 .value 0xB5E0,0xB422,0xB664,0xB7A6,0xB2E8,0xB32A,0xB16C,0xB0AE
1834 .value 0xBBF0,0xBA32,0xB874,0xB9B6,0xBCF8,0xBD3A,0xBF7C,0xBEBE
1836 .byte 71,72,65,83,72,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0