OLD | NEW |
1 #if defined(__x86_64__) | 1 #if defined(__x86_64__) |
2 .text | 2 .text |
3 | 3 |
4 | 4 |
5 .globl _gcm_gmult_4bit | 5 .globl _gcm_gmult_4bit |
| 6 .private_extern _gcm_gmult_4bit |
6 | 7 |
7 .p2align 4 | 8 .p2align 4 |
8 _gcm_gmult_4bit: | 9 _gcm_gmult_4bit: |
9 pushq %rbx | 10 pushq %rbx |
10 pushq %rbp | 11 pushq %rbp |
11 pushq %r12 | 12 pushq %r12 |
12 L$gmult_prologue: | 13 L$gmult_prologue: |
13 | 14 |
14 movzbq 15(%rdi),%r8 | 15 movzbq 15(%rdi),%r8 |
15 leaq L$rem_4bit(%rip),%r11 | 16 leaq L$rem_4bit(%rip),%r11 |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
84 bswapq %r9 | 85 bswapq %r9 |
85 movq %r8,8(%rdi) | 86 movq %r8,8(%rdi) |
86 movq %r9,(%rdi) | 87 movq %r9,(%rdi) |
87 | 88 |
88 movq 16(%rsp),%rbx | 89 movq 16(%rsp),%rbx |
89 leaq 24(%rsp),%rsp | 90 leaq 24(%rsp),%rsp |
90 L$gmult_epilogue: | 91 L$gmult_epilogue: |
91 .byte 0xf3,0xc3 | 92 .byte 0xf3,0xc3 |
92 | 93 |
93 .globl _gcm_ghash_4bit | 94 .globl _gcm_ghash_4bit |
| 95 .private_extern _gcm_ghash_4bit |
94 | 96 |
95 .p2align 4 | 97 .p2align 4 |
96 _gcm_ghash_4bit: | 98 _gcm_ghash_4bit: |
97 pushq %rbx | 99 pushq %rbx |
98 pushq %rbp | 100 pushq %rbp |
99 pushq %r12 | 101 pushq %r12 |
100 pushq %r13 | 102 pushq %r13 |
101 pushq %r14 | 103 pushq %r14 |
102 pushq %r15 | 104 pushq %r15 |
103 subq $280,%rsp | 105 subq $280,%rsp |
(...skipping 546 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
650 movq 8(%rsi),%r14 | 652 movq 8(%rsi),%r14 |
651 movq 16(%rsi),%r13 | 653 movq 16(%rsi),%r13 |
652 movq 24(%rsi),%r12 | 654 movq 24(%rsi),%r12 |
653 movq 32(%rsi),%rbp | 655 movq 32(%rsi),%rbp |
654 movq 40(%rsi),%rbx | 656 movq 40(%rsi),%rbx |
655 leaq 48(%rsi),%rsp | 657 leaq 48(%rsi),%rsp |
656 L$ghash_epilogue: | 658 L$ghash_epilogue: |
657 .byte 0xf3,0xc3 | 659 .byte 0xf3,0xc3 |
658 | 660 |
659 .globl _gcm_init_clmul | 661 .globl _gcm_init_clmul |
| 662 .private_extern _gcm_init_clmul |
660 | 663 |
661 .p2align 4 | 664 .p2align 4 |
662 _gcm_init_clmul: | 665 _gcm_init_clmul: |
663 L$_init_clmul: | 666 L$_init_clmul: |
664 movdqu (%rsi),%xmm2 | 667 movdqu (%rsi),%xmm2 |
665 pshufd $78,%xmm2,%xmm2 | 668 pshufd $78,%xmm2,%xmm2 |
666 | 669 |
667 | 670 |
668 pshufd $255,%xmm2,%xmm4 | 671 pshufd $255,%xmm2,%xmm4 |
669 movdqa %xmm2,%xmm3 | 672 movdqa %xmm2,%xmm3 |
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
806 pshufd $78,%xmm0,%xmm4 | 809 pshufd $78,%xmm0,%xmm4 |
807 pxor %xmm5,%xmm3 | 810 pxor %xmm5,%xmm3 |
808 movdqu %xmm5,48(%rdi) | 811 movdqu %xmm5,48(%rdi) |
809 pxor %xmm0,%xmm4 | 812 pxor %xmm0,%xmm4 |
810 movdqu %xmm0,64(%rdi) | 813 movdqu %xmm0,64(%rdi) |
811 .byte 102,15,58,15,227,8 | 814 .byte 102,15,58,15,227,8 |
812 movdqu %xmm4,80(%rdi) | 815 movdqu %xmm4,80(%rdi) |
813 .byte 0xf3,0xc3 | 816 .byte 0xf3,0xc3 |
814 | 817 |
815 .globl _gcm_gmult_clmul | 818 .globl _gcm_gmult_clmul |
| 819 .private_extern _gcm_gmult_clmul |
816 | 820 |
817 .p2align 4 | 821 .p2align 4 |
818 _gcm_gmult_clmul: | 822 _gcm_gmult_clmul: |
819 L$_gmult_clmul: | 823 L$_gmult_clmul: |
820 movdqu (%rdi),%xmm0 | 824 movdqu (%rdi),%xmm0 |
821 movdqa L$bswap_mask(%rip),%xmm5 | 825 movdqa L$bswap_mask(%rip),%xmm5 |
822 movdqu (%rsi),%xmm2 | 826 movdqu (%rsi),%xmm2 |
823 movdqu 32(%rsi),%xmm4 | 827 movdqu 32(%rsi),%xmm4 |
824 .byte 102,15,56,0,197 | 828 .byte 102,15,56,0,197 |
825 movdqa %xmm0,%xmm1 | 829 movdqa %xmm0,%xmm1 |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
857 pxor %xmm0,%xmm4 | 861 pxor %xmm0,%xmm4 |
858 psrlq $5,%xmm0 | 862 psrlq $5,%xmm0 |
859 pxor %xmm4,%xmm0 | 863 pxor %xmm4,%xmm0 |
860 psrlq $1,%xmm0 | 864 psrlq $1,%xmm0 |
861 pxor %xmm1,%xmm0 | 865 pxor %xmm1,%xmm0 |
862 .byte 102,15,56,0,197 | 866 .byte 102,15,56,0,197 |
863 movdqu %xmm0,(%rdi) | 867 movdqu %xmm0,(%rdi) |
864 .byte 0xf3,0xc3 | 868 .byte 0xf3,0xc3 |
865 | 869 |
866 .globl _gcm_ghash_clmul | 870 .globl _gcm_ghash_clmul |
| 871 .private_extern _gcm_ghash_clmul |
867 | 872 |
868 .p2align 5 | 873 .p2align 5 |
869 _gcm_ghash_clmul: | 874 _gcm_ghash_clmul: |
870 L$_ghash_clmul: | 875 L$_ghash_clmul: |
871 movdqa L$bswap_mask(%rip),%xmm10 | 876 movdqa L$bswap_mask(%rip),%xmm10 |
872 | 877 |
873 movdqu (%rdi),%xmm0 | 878 movdqu (%rdi),%xmm0 |
874 movdqu (%rsi),%xmm2 | 879 movdqu (%rsi),%xmm2 |
875 movdqu 32(%rsi),%xmm7 | 880 movdqu 32(%rsi),%xmm7 |
876 .byte 102,65,15,56,0,194 | 881 .byte 102,65,15,56,0,194 |
(...skipping 363 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1240 psrlq $5,%xmm0 | 1245 psrlq $5,%xmm0 |
1241 pxor %xmm4,%xmm0 | 1246 pxor %xmm4,%xmm0 |
1242 psrlq $1,%xmm0 | 1247 psrlq $1,%xmm0 |
1243 pxor %xmm1,%xmm0 | 1248 pxor %xmm1,%xmm0 |
1244 L$done: | 1249 L$done: |
1245 .byte 102,65,15,56,0,194 | 1250 .byte 102,65,15,56,0,194 |
1246 movdqu %xmm0,(%rdi) | 1251 movdqu %xmm0,(%rdi) |
1247 .byte 0xf3,0xc3 | 1252 .byte 0xf3,0xc3 |
1248 | 1253 |
1249 .globl _gcm_init_avx | 1254 .globl _gcm_init_avx |
| 1255 .private_extern _gcm_init_avx |
1250 | 1256 |
1251 .p2align 5 | 1257 .p2align 5 |
1252 _gcm_init_avx: | 1258 _gcm_init_avx: |
1253 jmp L$_init_clmul | 1259 jmp L$_init_clmul |
1254 | 1260 |
1255 .globl _gcm_gmult_avx | 1261 .globl _gcm_gmult_avx |
| 1262 .private_extern _gcm_gmult_avx |
1256 | 1263 |
1257 .p2align 5 | 1264 .p2align 5 |
1258 _gcm_gmult_avx: | 1265 _gcm_gmult_avx: |
1259 jmp L$_gmult_clmul | 1266 jmp L$_gmult_clmul |
1260 | 1267 |
1261 .globl _gcm_ghash_avx | 1268 .globl _gcm_ghash_avx |
| 1269 .private_extern _gcm_ghash_avx |
1262 | 1270 |
1263 .p2align 5 | 1271 .p2align 5 |
1264 _gcm_ghash_avx: | 1272 _gcm_ghash_avx: |
1265 jmp L$_ghash_clmul | 1273 jmp L$_ghash_clmul |
1266 | 1274 |
1267 .p2align 6 | 1275 .p2align 6 |
1268 L$bswap_mask: | 1276 L$bswap_mask: |
1269 .byte 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0 | 1277 .byte 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0 |
1270 L$0x1c2_polynomial: | 1278 L$0x1c2_polynomial: |
1271 .byte 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xc2 | 1279 .byte 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xc2 |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1311 .value 0x8DA0,0x8C62,0x8E24,0x8FE6,0x8AA8,0x8B6A,0x892C,0x88EE | 1319 .value 0x8DA0,0x8C62,0x8E24,0x8FE6,0x8AA8,0x8B6A,0x892C,0x88EE |
1312 .value 0x83B0,0x8272,0x8034,0x81F6,0x84B8,0x857A,0x873C,0x86FE | 1320 .value 0x83B0,0x8272,0x8034,0x81F6,0x84B8,0x857A,0x873C,0x86FE |
1313 .value 0xA9C0,0xA802,0xAA44,0xAB86,0xAEC8,0xAF0A,0xAD4C,0xAC8E | 1321 .value 0xA9C0,0xA802,0xAA44,0xAB86,0xAEC8,0xAF0A,0xAD4C,0xAC8E |
1314 .value 0xA7D0,0xA612,0xA454,0xA596,0xA0D8,0xA11A,0xA35C,0xA29E | 1322 .value 0xA7D0,0xA612,0xA454,0xA596,0xA0D8,0xA11A,0xA35C,0xA29E |
1315 .value 0xB5E0,0xB422,0xB664,0xB7A6,0xB2E8,0xB32A,0xB16C,0xB0AE | 1323 .value 0xB5E0,0xB422,0xB664,0xB7A6,0xB2E8,0xB32A,0xB16C,0xB0AE |
1316 .value 0xBBF0,0xBA32,0xB874,0xB9B6,0xBCF8,0xBD3A,0xBF7C,0xBEBE | 1324 .value 0xBBF0,0xBA32,0xB874,0xB9B6,0xBCF8,0xBD3A,0xBF7C,0xBEBE |
1317 | 1325 |
1318 .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,10
8,46,111,114,103,62,0 | 1326 .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,10
8,46,111,114,103,62,0 |
1319 .p2align 6 | 1327 .p2align 6 |
1320 #endif | 1328 #endif |
OLD | NEW |