diff options
Diffstat (limited to 'src')
28 files changed, 113 insertions, 1 deletions
diff --git a/src/lib/libcrypto/aes/asm/aes-x86_64.pl b/src/lib/libcrypto/aes/asm/aes-x86_64.pl index b7399b552a..78ba20ca59 100755 --- a/src/lib/libcrypto/aes/asm/aes-x86_64.pl +++ b/src/lib/libcrypto/aes/asm/aes-x86_64.pl | |||
| @@ -318,6 +318,7 @@ $code.=<<___; | |||
| 318 | .type _x86_64_AES_encrypt,\@abi-omnipotent | 318 | .type _x86_64_AES_encrypt,\@abi-omnipotent |
| 319 | .align 16 | 319 | .align 16 |
| 320 | _x86_64_AES_encrypt: | 320 | _x86_64_AES_encrypt: |
| 321 | endbr64 | ||
| 321 | xor 0($key),$s0 # xor with key | 322 | xor 0($key),$s0 # xor with key |
| 322 | xor 4($key),$s1 | 323 | xor 4($key),$s1 |
| 323 | xor 8($key),$s2 | 324 | xor 8($key),$s2 |
| @@ -548,6 +549,7 @@ $code.=<<___; | |||
| 548 | .type _x86_64_AES_encrypt_compact,\@abi-omnipotent | 549 | .type _x86_64_AES_encrypt_compact,\@abi-omnipotent |
| 549 | .align 16 | 550 | .align 16 |
| 550 | _x86_64_AES_encrypt_compact: | 551 | _x86_64_AES_encrypt_compact: |
| 552 | endbr64 | ||
| 551 | lea 128($sbox),$inp # size optimization | 553 | lea 128($sbox),$inp # size optimization |
| 552 | mov 0-128($inp),$acc1 # prefetch Te4 | 554 | mov 0-128($inp),$acc1 # prefetch Te4 |
| 553 | mov 32-128($inp),$acc2 | 555 | mov 32-128($inp),$acc2 |
| @@ -593,6 +595,7 @@ $code.=<<___; | |||
| 593 | .hidden asm_AES_encrypt | 595 | .hidden asm_AES_encrypt |
| 594 | asm_AES_encrypt: | 596 | asm_AES_encrypt: |
| 595 | AES_encrypt: | 597 | AES_encrypt: |
| 598 | endbr64 | ||
| 596 | push %rbx | 599 | push %rbx |
| 597 | push %rbp | 600 | push %rbp |
| 598 | push %r12 | 601 | push %r12 |
| @@ -884,6 +887,7 @@ $code.=<<___; | |||
| 884 | .type _x86_64_AES_decrypt,\@abi-omnipotent | 887 | .type _x86_64_AES_decrypt,\@abi-omnipotent |
| 885 | .align 16 | 888 | .align 16 |
| 886 | _x86_64_AES_decrypt: | 889 | _x86_64_AES_decrypt: |
| 890 | endbr64 | ||
| 887 | xor 0($key),$s0 # xor with key | 891 | xor 0($key),$s0 # xor with key |
| 888 | xor 4($key),$s1 | 892 | xor 4($key),$s1 |
| 889 | xor 8($key),$s2 | 893 | xor 8($key),$s2 |
| @@ -1138,6 +1142,7 @@ $code.=<<___; | |||
| 1138 | .type _x86_64_AES_decrypt_compact,\@abi-omnipotent | 1142 | .type _x86_64_AES_decrypt_compact,\@abi-omnipotent |
| 1139 | .align 16 | 1143 | .align 16 |
| 1140 | _x86_64_AES_decrypt_compact: | 1144 | _x86_64_AES_decrypt_compact: |
| 1145 | endbr64 | ||
| 1141 | lea 128($sbox),$inp # size optimization | 1146 | lea 128($sbox),$inp # size optimization |
| 1142 | mov 0-128($inp),$acc1 # prefetch Td4 | 1147 | mov 0-128($inp),$acc1 # prefetch Td4 |
| 1143 | mov 32-128($inp),$acc2 | 1148 | mov 32-128($inp),$acc2 |
| @@ -1192,6 +1197,7 @@ $code.=<<___; | |||
| 1192 | .hidden asm_AES_decrypt | 1197 | .hidden asm_AES_decrypt |
| 1193 | asm_AES_decrypt: | 1198 | asm_AES_decrypt: |
| 1194 | AES_decrypt: | 1199 | AES_decrypt: |
| 1200 | endbr64 | ||
| 1195 | push %rbx | 1201 | push %rbx |
| 1196 | push %rbp | 1202 | push %rbp |
| 1197 | push %r12 | 1203 | push %r12 |
| @@ -1291,6 +1297,7 @@ $code.=<<___; | |||
| 1291 | .type AES_set_encrypt_key,\@function,3 | 1297 | .type AES_set_encrypt_key,\@function,3 |
| 1292 | .align 16 | 1298 | .align 16 |
| 1293 | AES_set_encrypt_key: | 1299 | AES_set_encrypt_key: |
| 1300 | endbr64 | ||
| 1294 | push %rbx | 1301 | push %rbx |
| 1295 | push %rbp | 1302 | push %rbp |
| 1296 | push %r12 # redundant, but allows to share | 1303 | push %r12 # redundant, but allows to share |
| @@ -1316,6 +1323,7 @@ AES_set_encrypt_key: | |||
| 1316 | .type _x86_64_AES_set_encrypt_key,\@abi-omnipotent | 1323 | .type _x86_64_AES_set_encrypt_key,\@abi-omnipotent |
| 1317 | .align 16 | 1324 | .align 16 |
| 1318 | _x86_64_AES_set_encrypt_key: | 1325 | _x86_64_AES_set_encrypt_key: |
| 1326 | endbr64 | ||
| 1319 | mov %esi,%ecx # %ecx=bits | 1327 | mov %esi,%ecx # %ecx=bits |
| 1320 | mov %rdi,%rsi # %rsi=userKey | 1328 | mov %rdi,%rsi # %rsi=userKey |
| 1321 | mov %rdx,%rdi # %rdi=key | 1329 | mov %rdx,%rdi # %rdi=key |
| @@ -1561,6 +1569,7 @@ $code.=<<___; | |||
| 1561 | .type AES_set_decrypt_key,\@function,3 | 1569 | .type AES_set_decrypt_key,\@function,3 |
| 1562 | .align 16 | 1570 | .align 16 |
| 1563 | AES_set_decrypt_key: | 1571 | AES_set_decrypt_key: |
| 1572 | endbr64 | ||
| 1564 | push %rbx | 1573 | push %rbx |
| 1565 | push %rbp | 1574 | push %rbp |
| 1566 | push %r12 | 1575 | push %r12 |
| @@ -1660,6 +1669,7 @@ $code.=<<___; | |||
| 1660 | .hidden asm_AES_cbc_encrypt | 1669 | .hidden asm_AES_cbc_encrypt |
| 1661 | asm_AES_cbc_encrypt: | 1670 | asm_AES_cbc_encrypt: |
| 1662 | AES_cbc_encrypt: | 1671 | AES_cbc_encrypt: |
| 1672 | endbr64 | ||
| 1663 | cmp \$0,%rdx # check length | 1673 | cmp \$0,%rdx # check length |
| 1664 | je .Lcbc_epilogue | 1674 | je .Lcbc_epilogue |
| 1665 | pushfq | 1675 | pushfq |
| @@ -2551,6 +2561,7 @@ $code.=<<___; | |||
| 2551 | .type block_se_handler,\@abi-omnipotent | 2561 | .type block_se_handler,\@abi-omnipotent |
| 2552 | .align 16 | 2562 | .align 16 |
| 2553 | block_se_handler: | 2563 | block_se_handler: |
| 2564 | endbr64 | ||
| 2554 | push %rsi | 2565 | push %rsi |
| 2555 | push %rdi | 2566 | push %rdi |
| 2556 | push %rbx | 2567 | push %rbx |
| @@ -2609,6 +2620,7 @@ block_se_handler: | |||
| 2609 | .type key_se_handler,\@abi-omnipotent | 2620 | .type key_se_handler,\@abi-omnipotent |
| 2610 | .align 16 | 2621 | .align 16 |
| 2611 | key_se_handler: | 2622 | key_se_handler: |
| 2623 | endbr64 | ||
| 2612 | push %rsi | 2624 | push %rsi |
| 2613 | push %rdi | 2625 | push %rdi |
| 2614 | push %rbx | 2626 | push %rbx |
| @@ -2666,6 +2678,7 @@ key_se_handler: | |||
| 2666 | .type cbc_se_handler,\@abi-omnipotent | 2678 | .type cbc_se_handler,\@abi-omnipotent |
| 2667 | .align 16 | 2679 | .align 16 |
| 2668 | cbc_se_handler: | 2680 | cbc_se_handler: |
| 2681 | endbr64 | ||
| 2669 | push %rsi | 2682 | push %rsi |
| 2670 | push %rdi | 2683 | push %rdi |
| 2671 | push %rbx | 2684 | push %rbx |
diff --git a/src/lib/libcrypto/aes/asm/aesni-sha1-x86_64.pl b/src/lib/libcrypto/aes/asm/aesni-sha1-x86_64.pl index bafa906a05..879d16793f 100644 --- a/src/lib/libcrypto/aes/asm/aesni-sha1-x86_64.pl +++ b/src/lib/libcrypto/aes/asm/aesni-sha1-x86_64.pl | |||
| @@ -89,6 +89,7 @@ $code.=<<___; | |||
| 89 | .type aesni_cbc_sha1_enc,\@abi-omnipotent | 89 | .type aesni_cbc_sha1_enc,\@abi-omnipotent |
| 90 | .align 16 | 90 | .align 16 |
| 91 | aesni_cbc_sha1_enc: | 91 | aesni_cbc_sha1_enc: |
| 92 | endbr64 | ||
| 92 | # caller should check for SSSE3 and AES-NI bits | 93 | # caller should check for SSSE3 and AES-NI bits |
| 93 | mov OPENSSL_ia32cap_P+0(%rip),%r10d | 94 | mov OPENSSL_ia32cap_P+0(%rip),%r10d |
| 94 | mov OPENSSL_ia32cap_P+4(%rip),%r11d | 95 | mov OPENSSL_ia32cap_P+4(%rip),%r11d |
| @@ -132,6 +133,7 @@ $code.=<<___; | |||
| 132 | .type aesni_cbc_sha1_enc_ssse3,\@function,6 | 133 | .type aesni_cbc_sha1_enc_ssse3,\@function,6 |
| 133 | .align 16 | 134 | .align 16 |
| 134 | aesni_cbc_sha1_enc_ssse3: | 135 | aesni_cbc_sha1_enc_ssse3: |
| 136 | endbr64 | ||
| 135 | mov `($win64?56:8)`(%rsp),$inp # load 7th argument | 137 | mov `($win64?56:8)`(%rsp),$inp # load 7th argument |
| 136 | #shr \$6,$len # debugging artefact | 138 | #shr \$6,$len # debugging artefact |
| 137 | #jz .Lepilogue_ssse3 # debugging artefact | 139 | #jz .Lepilogue_ssse3 # debugging artefact |
| @@ -650,6 +652,7 @@ $code.=<<___; | |||
| 650 | .type aesni_cbc_sha1_enc_avx,\@function,6 | 652 | .type aesni_cbc_sha1_enc_avx,\@function,6 |
| 651 | .align 16 | 653 | .align 16 |
| 652 | aesni_cbc_sha1_enc_avx: | 654 | aesni_cbc_sha1_enc_avx: |
| 655 | endbr64 | ||
| 653 | mov `($win64?56:8)`(%rsp),$inp # load 7th argument | 656 | mov `($win64?56:8)`(%rsp),$inp # load 7th argument |
| 654 | #shr \$6,$len # debugging artefact | 657 | #shr \$6,$len # debugging artefact |
| 655 | #jz .Lepilogue_avx # debugging artefact | 658 | #jz .Lepilogue_avx # debugging artefact |
| @@ -1100,6 +1103,7 @@ $code.=<<___; | |||
| 1100 | .type ssse3_handler,\@abi-omnipotent | 1103 | .type ssse3_handler,\@abi-omnipotent |
| 1101 | .align 16 | 1104 | .align 16 |
| 1102 | ssse3_handler: | 1105 | ssse3_handler: |
| 1106 | endbr64 | ||
| 1103 | push %rsi | 1107 | push %rsi |
| 1104 | push %rdi | 1108 | push %rdi |
| 1105 | push %rbx | 1109 | push %rbx |
diff --git a/src/lib/libcrypto/aes/asm/aesni-x86_64.pl b/src/lib/libcrypto/aes/asm/aesni-x86_64.pl index d394e6f696..c261a37958 100644 --- a/src/lib/libcrypto/aes/asm/aesni-x86_64.pl +++ b/src/lib/libcrypto/aes/asm/aesni-x86_64.pl | |||
| @@ -242,6 +242,7 @@ $code.=<<___; | |||
| 242 | .type ${PREFIX}_encrypt,\@abi-omnipotent | 242 | .type ${PREFIX}_encrypt,\@abi-omnipotent |
| 243 | .align 16 | 243 | .align 16 |
| 244 | ${PREFIX}_encrypt: | 244 | ${PREFIX}_encrypt: |
| 245 | endbr64 | ||
| 245 | movups ($inp),$inout0 # load input | 246 | movups ($inp),$inout0 # load input |
| 246 | mov 240($key),$rounds # key->rounds | 247 | mov 240($key),$rounds # key->rounds |
| 247 | ___ | 248 | ___ |
| @@ -255,6 +256,7 @@ $code.=<<___; | |||
| 255 | .type ${PREFIX}_decrypt,\@abi-omnipotent | 256 | .type ${PREFIX}_decrypt,\@abi-omnipotent |
| 256 | .align 16 | 257 | .align 16 |
| 257 | ${PREFIX}_decrypt: | 258 | ${PREFIX}_decrypt: |
| 259 | endbr64 | ||
| 258 | movups ($inp),$inout0 # load input | 260 | movups ($inp),$inout0 # load input |
| 259 | mov 240($key),$rounds # key->rounds | 261 | mov 240($key),$rounds # key->rounds |
| 260 | ___ | 262 | ___ |
| @@ -284,6 +286,7 @@ $code.=<<___; | |||
| 284 | .type _aesni_${dir}rypt3,\@abi-omnipotent | 286 | .type _aesni_${dir}rypt3,\@abi-omnipotent |
| 285 | .align 16 | 287 | .align 16 |
| 286 | _aesni_${dir}rypt3: | 288 | _aesni_${dir}rypt3: |
| 289 | endbr64 | ||
| 287 | $movkey ($key),$rndkey0 | 290 | $movkey ($key),$rndkey0 |
| 288 | shr \$1,$rounds | 291 | shr \$1,$rounds |
| 289 | $movkey 16($key),$rndkey1 | 292 | $movkey 16($key),$rndkey1 |
| @@ -328,6 +331,7 @@ $code.=<<___; | |||
| 328 | .type _aesni_${dir}rypt4,\@abi-omnipotent | 331 | .type _aesni_${dir}rypt4,\@abi-omnipotent |
| 329 | .align 16 | 332 | .align 16 |
| 330 | _aesni_${dir}rypt4: | 333 | _aesni_${dir}rypt4: |
| 334 | endbr64 | ||
| 331 | $movkey ($key),$rndkey0 | 335 | $movkey ($key),$rndkey0 |
| 332 | shr \$1,$rounds | 336 | shr \$1,$rounds |
| 333 | $movkey 16($key),$rndkey1 | 337 | $movkey 16($key),$rndkey1 |
| @@ -373,6 +377,7 @@ $code.=<<___; | |||
| 373 | .type _aesni_${dir}rypt6,\@abi-omnipotent | 377 | .type _aesni_${dir}rypt6,\@abi-omnipotent |
| 374 | .align 16 | 378 | .align 16 |
| 375 | _aesni_${dir}rypt6: | 379 | _aesni_${dir}rypt6: |
| 380 | endbr64 | ||
| 376 | $movkey ($key),$rndkey0 | 381 | $movkey ($key),$rndkey0 |
| 377 | shr \$1,$rounds | 382 | shr \$1,$rounds |
| 378 | $movkey 16($key),$rndkey1 | 383 | $movkey 16($key),$rndkey1 |
| @@ -437,6 +442,7 @@ $code.=<<___; | |||
| 437 | .type _aesni_${dir}rypt8,\@abi-omnipotent | 442 | .type _aesni_${dir}rypt8,\@abi-omnipotent |
| 438 | .align 16 | 443 | .align 16 |
| 439 | _aesni_${dir}rypt8: | 444 | _aesni_${dir}rypt8: |
| 445 | endbr64 | ||
| 440 | $movkey ($key),$rndkey0 | 446 | $movkey ($key),$rndkey0 |
| 441 | shr \$1,$rounds | 447 | shr \$1,$rounds |
| 442 | $movkey 16($key),$rndkey1 | 448 | $movkey 16($key),$rndkey1 |
| @@ -525,6 +531,7 @@ $code.=<<___; | |||
| 525 | .type aesni_ecb_encrypt,\@function,5 | 531 | .type aesni_ecb_encrypt,\@function,5 |
| 526 | .align 16 | 532 | .align 16 |
| 527 | aesni_ecb_encrypt: | 533 | aesni_ecb_encrypt: |
| 534 | endbr64 | ||
| 528 | and \$-16,$len | 535 | and \$-16,$len |
| 529 | jz .Lecb_ret | 536 | jz .Lecb_ret |
| 530 | 537 | ||
| @@ -830,6 +837,7 @@ $code.=<<___; | |||
| 830 | .type aesni_ccm64_encrypt_blocks,\@function,6 | 837 | .type aesni_ccm64_encrypt_blocks,\@function,6 |
| 831 | .align 16 | 838 | .align 16 |
| 832 | aesni_ccm64_encrypt_blocks: | 839 | aesni_ccm64_encrypt_blocks: |
| 840 | endbr64 | ||
| 833 | ___ | 841 | ___ |
| 834 | $code.=<<___ if ($win64); | 842 | $code.=<<___ if ($win64); |
| 835 | lea -0x58(%rsp),%rsp | 843 | lea -0x58(%rsp),%rsp |
| @@ -2478,6 +2486,7 @@ $code.=<<___; | |||
| 2478 | .type ${PREFIX}_set_decrypt_key,\@abi-omnipotent | 2486 | .type ${PREFIX}_set_decrypt_key,\@abi-omnipotent |
| 2479 | .align 16 | 2487 | .align 16 |
| 2480 | ${PREFIX}_set_decrypt_key: | 2488 | ${PREFIX}_set_decrypt_key: |
| 2489 | endbr64 | ||
| 2481 | sub \$8,%rsp | 2490 | sub \$8,%rsp |
| 2482 | call __aesni_set_encrypt_key | 2491 | call __aesni_set_encrypt_key |
| 2483 | shl \$4,$bits # rounds-1 after _aesni_set_encrypt_key | 2492 | shl \$4,$bits # rounds-1 after _aesni_set_encrypt_key |
| @@ -2528,6 +2537,7 @@ $code.=<<___; | |||
| 2528 | .type ${PREFIX}_set_encrypt_key,\@abi-omnipotent | 2537 | .type ${PREFIX}_set_encrypt_key,\@abi-omnipotent |
| 2529 | .align 16 | 2538 | .align 16 |
| 2530 | ${PREFIX}_set_encrypt_key: | 2539 | ${PREFIX}_set_encrypt_key: |
| 2540 | endbr64 | ||
| 2531 | __aesni_set_encrypt_key: | 2541 | __aesni_set_encrypt_key: |
| 2532 | sub \$8,%rsp | 2542 | sub \$8,%rsp |
| 2533 | mov \$-1,%rax | 2543 | mov \$-1,%rax |
| @@ -2749,6 +2759,7 @@ $code.=<<___ if ($PREFIX eq "aesni"); | |||
| 2749 | .type ecb_se_handler,\@abi-omnipotent | 2759 | .type ecb_se_handler,\@abi-omnipotent |
| 2750 | .align 16 | 2760 | .align 16 |
| 2751 | ecb_se_handler: | 2761 | ecb_se_handler: |
| 2762 | endbr64 | ||
| 2752 | push %rsi | 2763 | push %rsi |
| 2753 | push %rdi | 2764 | push %rdi |
| 2754 | push %rbx | 2765 | push %rbx |
| @@ -2768,6 +2779,7 @@ ecb_se_handler: | |||
| 2768 | .type ccm64_se_handler,\@abi-omnipotent | 2779 | .type ccm64_se_handler,\@abi-omnipotent |
| 2769 | .align 16 | 2780 | .align 16 |
| 2770 | ccm64_se_handler: | 2781 | ccm64_se_handler: |
| 2782 | endbr64 | ||
| 2771 | push %rsi | 2783 | push %rsi |
| 2772 | push %rdi | 2784 | push %rdi |
| 2773 | push %rbx | 2785 | push %rbx |
| @@ -2809,6 +2821,7 @@ ccm64_se_handler: | |||
| 2809 | .type ctr32_se_handler,\@abi-omnipotent | 2821 | .type ctr32_se_handler,\@abi-omnipotent |
| 2810 | .align 16 | 2822 | .align 16 |
| 2811 | ctr32_se_handler: | 2823 | ctr32_se_handler: |
| 2824 | endbr64 | ||
| 2812 | push %rsi | 2825 | push %rsi |
| 2813 | push %rdi | 2826 | push %rdi |
| 2814 | push %rbx | 2827 | push %rbx |
| @@ -2844,6 +2857,7 @@ ctr32_se_handler: | |||
| 2844 | .type xts_se_handler,\@abi-omnipotent | 2857 | .type xts_se_handler,\@abi-omnipotent |
| 2845 | .align 16 | 2858 | .align 16 |
| 2846 | xts_se_handler: | 2859 | xts_se_handler: |
| 2860 | endbr64 | ||
| 2847 | push %rsi | 2861 | push %rsi |
| 2848 | push %rdi | 2862 | push %rdi |
| 2849 | push %rbx | 2863 | push %rbx |
| @@ -2885,6 +2899,7 @@ $code.=<<___; | |||
| 2885 | .type cbc_se_handler,\@abi-omnipotent | 2899 | .type cbc_se_handler,\@abi-omnipotent |
| 2886 | .align 16 | 2900 | .align 16 |
| 2887 | cbc_se_handler: | 2901 | cbc_se_handler: |
| 2902 | endbr64 | ||
| 2888 | push %rsi | 2903 | push %rsi |
| 2889 | push %rdi | 2904 | push %rdi |
| 2890 | push %rbx | 2905 | push %rbx |
diff --git a/src/lib/libcrypto/aes/asm/bsaes-x86_64.pl b/src/lib/libcrypto/aes/asm/bsaes-x86_64.pl index 20e9e1f71f..7098ba27f4 100644 --- a/src/lib/libcrypto/aes/asm/bsaes-x86_64.pl +++ b/src/lib/libcrypto/aes/asm/bsaes-x86_64.pl | |||
| @@ -813,6 +813,7 @@ $code.=<<___; | |||
| 813 | .type _bsaes_encrypt8,\@abi-omnipotent | 813 | .type _bsaes_encrypt8,\@abi-omnipotent |
| 814 | .align 64 | 814 | .align 64 |
| 815 | _bsaes_encrypt8: | 815 | _bsaes_encrypt8: |
| 816 | endbr64 | ||
| 816 | lea .LBS0(%rip), $const # constants table | 817 | lea .LBS0(%rip), $const # constants table |
| 817 | 818 | ||
| 818 | movdqa ($key), @XMM[9] # round 0 key | 819 | movdqa ($key), @XMM[9] # round 0 key |
| @@ -877,6 +878,7 @@ $code.=<<___; | |||
| 877 | .type _bsaes_decrypt8,\@abi-omnipotent | 878 | .type _bsaes_decrypt8,\@abi-omnipotent |
| 878 | .align 64 | 879 | .align 64 |
| 879 | _bsaes_decrypt8: | 880 | _bsaes_decrypt8: |
| 881 | endbr64 | ||
| 880 | lea .LBS0(%rip), $const # constants table | 882 | lea .LBS0(%rip), $const # constants table |
| 881 | 883 | ||
| 882 | movdqa ($key), @XMM[9] # round 0 key | 884 | movdqa ($key), @XMM[9] # round 0 key |
| @@ -968,6 +970,7 @@ $code.=<<___; | |||
| 968 | .type _bsaes_key_convert,\@abi-omnipotent | 970 | .type _bsaes_key_convert,\@abi-omnipotent |
| 969 | .align 16 | 971 | .align 16 |
| 970 | _bsaes_key_convert: | 972 | _bsaes_key_convert: |
| 973 | endbr64 | ||
| 971 | lea .Lmasks(%rip), $const | 974 | lea .Lmasks(%rip), $const |
| 972 | movdqu ($inp), %xmm7 # load round 0 key | 975 | movdqu ($inp), %xmm7 # load round 0 key |
| 973 | lea 0x10($inp), $inp | 976 | lea 0x10($inp), $inp |
| @@ -1057,6 +1060,7 @@ $code.=<<___; | |||
| 1057 | .type bsaes_enc_key_convert,\@function,2 | 1060 | .type bsaes_enc_key_convert,\@function,2 |
| 1058 | .align 16 | 1061 | .align 16 |
| 1059 | bsaes_enc_key_convert: | 1062 | bsaes_enc_key_convert: |
| 1063 | endbr64 | ||
| 1060 | mov 240($inp),%r10d # pass rounds | 1064 | mov 240($inp),%r10d # pass rounds |
| 1061 | mov $inp,%rcx # pass key | 1065 | mov $inp,%rcx # pass key |
| 1062 | mov $out,%rax # pass key schedule | 1066 | mov $out,%rax # pass key schedule |
| @@ -1071,6 +1075,7 @@ bsaes_enc_key_convert: | |||
| 1071 | .align 16 | 1075 | .align 16 |
| 1072 | bsaes_encrypt_128: | 1076 | bsaes_encrypt_128: |
| 1073 | .Lenc128_loop: | 1077 | .Lenc128_loop: |
| 1078 | endbr64 | ||
| 1074 | movdqu 0x00($inp), @XMM[0] # load input | 1079 | movdqu 0x00($inp), @XMM[0] # load input |
| 1075 | movdqu 0x10($inp), @XMM[1] | 1080 | movdqu 0x10($inp), @XMM[1] |
| 1076 | movdqu 0x20($inp), @XMM[2] | 1081 | movdqu 0x20($inp), @XMM[2] |
| @@ -1103,6 +1108,7 @@ bsaes_encrypt_128: | |||
| 1103 | .type bsaes_dec_key_convert,\@function,2 | 1108 | .type bsaes_dec_key_convert,\@function,2 |
| 1104 | .align 16 | 1109 | .align 16 |
| 1105 | bsaes_dec_key_convert: | 1110 | bsaes_dec_key_convert: |
| 1111 | endbr64 | ||
| 1106 | mov 240($inp),%r10d # pass rounds | 1112 | mov 240($inp),%r10d # pass rounds |
| 1107 | mov $inp,%rcx # pass key | 1113 | mov $inp,%rcx # pass key |
| 1108 | mov $out,%rax # pass key schedule | 1114 | mov $out,%rax # pass key schedule |
| @@ -1117,6 +1123,7 @@ bsaes_dec_key_convert: | |||
| 1117 | .type bsaes_decrypt_128,\@function,4 | 1123 | .type bsaes_decrypt_128,\@function,4 |
| 1118 | .align 16 | 1124 | .align 16 |
| 1119 | bsaes_decrypt_128: | 1125 | bsaes_decrypt_128: |
| 1126 | endbr64 | ||
| 1120 | .Ldec128_loop: | 1127 | .Ldec128_loop: |
| 1121 | movdqu 0x00($inp), @XMM[0] # load input | 1128 | movdqu 0x00($inp), @XMM[0] # load input |
| 1122 | movdqu 0x10($inp), @XMM[1] | 1129 | movdqu 0x10($inp), @XMM[1] |
| @@ -1162,6 +1169,7 @@ $code.=<<___; | |||
| 1162 | .type bsaes_ecb_encrypt_blocks,\@abi-omnipotent | 1169 | .type bsaes_ecb_encrypt_blocks,\@abi-omnipotent |
| 1163 | .align 16 | 1170 | .align 16 |
| 1164 | bsaes_ecb_encrypt_blocks: | 1171 | bsaes_ecb_encrypt_blocks: |
| 1172 | endbr64 | ||
| 1165 | mov %rsp, %rax | 1173 | mov %rsp, %rax |
| 1166 | .Lecb_enc_prologue: | 1174 | .Lecb_enc_prologue: |
| 1167 | push %rbp | 1175 | push %rbp |
| @@ -1363,6 +1371,7 @@ $code.=<<___; | |||
| 1363 | .type bsaes_ecb_decrypt_blocks,\@abi-omnipotent | 1371 | .type bsaes_ecb_decrypt_blocks,\@abi-omnipotent |
| 1364 | .align 16 | 1372 | .align 16 |
| 1365 | bsaes_ecb_decrypt_blocks: | 1373 | bsaes_ecb_decrypt_blocks: |
| 1374 | endbr64 | ||
| 1366 | mov %rsp, %rax | 1375 | mov %rsp, %rax |
| 1367 | .Lecb_dec_prologue: | 1376 | .Lecb_dec_prologue: |
| 1368 | push %rbp | 1377 | push %rbp |
| @@ -1568,6 +1577,7 @@ $code.=<<___; | |||
| 1568 | .type bsaes_cbc_encrypt,\@abi-omnipotent | 1577 | .type bsaes_cbc_encrypt,\@abi-omnipotent |
| 1569 | .align 16 | 1578 | .align 16 |
| 1570 | bsaes_cbc_encrypt: | 1579 | bsaes_cbc_encrypt: |
| 1580 | endbr64 | ||
| 1571 | ___ | 1581 | ___ |
| 1572 | $code.=<<___ if ($win64); | 1582 | $code.=<<___ if ($win64); |
| 1573 | mov 48(%rsp),$arg6 # pull direction flag | 1583 | mov 48(%rsp),$arg6 # pull direction flag |
| @@ -1855,6 +1865,7 @@ $code.=<<___; | |||
| 1855 | .type bsaes_ctr32_encrypt_blocks,\@abi-omnipotent | 1865 | .type bsaes_ctr32_encrypt_blocks,\@abi-omnipotent |
| 1856 | .align 16 | 1866 | .align 16 |
| 1857 | bsaes_ctr32_encrypt_blocks: | 1867 | bsaes_ctr32_encrypt_blocks: |
| 1868 | endbr64 | ||
| 1858 | mov %rsp, %rax | 1869 | mov %rsp, %rax |
| 1859 | .Lctr_enc_prologue: | 1870 | .Lctr_enc_prologue: |
| 1860 | push %rbp | 1871 | push %rbp |
| @@ -2096,6 +2107,7 @@ $code.=<<___; | |||
| 2096 | .type bsaes_xts_encrypt,\@abi-omnipotent | 2107 | .type bsaes_xts_encrypt,\@abi-omnipotent |
| 2097 | .align 16 | 2108 | .align 16 |
| 2098 | bsaes_xts_encrypt: | 2109 | bsaes_xts_encrypt: |
| 2110 | endbr64 | ||
| 2099 | mov %rsp, %rax | 2111 | mov %rsp, %rax |
| 2100 | .Lxts_enc_prologue: | 2112 | .Lxts_enc_prologue: |
| 2101 | push %rbp | 2113 | push %rbp |
| @@ -2477,6 +2489,7 @@ $code.=<<___; | |||
| 2477 | .type bsaes_xts_decrypt,\@abi-omnipotent | 2489 | .type bsaes_xts_decrypt,\@abi-omnipotent |
| 2478 | .align 16 | 2490 | .align 16 |
| 2479 | bsaes_xts_decrypt: | 2491 | bsaes_xts_decrypt: |
| 2492 | endbr64 | ||
| 2480 | mov %rsp, %rax | 2493 | mov %rsp, %rax |
| 2481 | .Lxts_dec_prologue: | 2494 | .Lxts_dec_prologue: |
| 2482 | push %rbp | 2495 | push %rbp |
| @@ -2953,6 +2966,7 @@ $code.=<<___; | |||
| 2953 | .type se_handler,\@abi-omnipotent | 2966 | .type se_handler,\@abi-omnipotent |
| 2954 | .align 16 | 2967 | .align 16 |
| 2955 | se_handler: | 2968 | se_handler: |
| 2969 | endbr64 | ||
| 2956 | push %rsi | 2970 | push %rsi |
| 2957 | push %rdi | 2971 | push %rdi |
| 2958 | push %rbx | 2972 | push %rbx |
diff --git a/src/lib/libcrypto/aes/asm/vpaes-x86_64.pl b/src/lib/libcrypto/aes/asm/vpaes-x86_64.pl index 3ffb1a3038..8ff8d8602b 100644 --- a/src/lib/libcrypto/aes/asm/vpaes-x86_64.pl +++ b/src/lib/libcrypto/aes/asm/vpaes-x86_64.pl | |||
| @@ -82,6 +82,7 @@ $code.=<<___; | |||
| 82 | .type _vpaes_encrypt_core,\@abi-omnipotent | 82 | .type _vpaes_encrypt_core,\@abi-omnipotent |
| 83 | .align 16 | 83 | .align 16 |
| 84 | _vpaes_encrypt_core: | 84 | _vpaes_encrypt_core: |
| 85 | endbr64 | ||
| 85 | mov %rdx, %r9 | 86 | mov %rdx, %r9 |
| 86 | mov \$16, %r11 | 87 | mov \$16, %r11 |
| 87 | mov 240(%rdx),%eax | 88 | mov 240(%rdx),%eax |
| @@ -172,6 +173,7 @@ _vpaes_encrypt_core: | |||
| 172 | .type _vpaes_decrypt_core,\@abi-omnipotent | 173 | .type _vpaes_decrypt_core,\@abi-omnipotent |
| 173 | .align 16 | 174 | .align 16 |
| 174 | _vpaes_decrypt_core: | 175 | _vpaes_decrypt_core: |
| 176 | endbr64 | ||
| 175 | mov %rdx, %r9 # load key | 177 | mov %rdx, %r9 # load key |
| 176 | mov 240(%rdx),%eax | 178 | mov 240(%rdx),%eax |
| 177 | movdqa %xmm9, %xmm1 | 179 | movdqa %xmm9, %xmm1 |
| @@ -279,6 +281,7 @@ _vpaes_decrypt_core: | |||
| 279 | .type _vpaes_schedule_core,\@abi-omnipotent | 281 | .type _vpaes_schedule_core,\@abi-omnipotent |
| 280 | .align 16 | 282 | .align 16 |
| 281 | _vpaes_schedule_core: | 283 | _vpaes_schedule_core: |
| 284 | endbr64 | ||
| 282 | # rdi = key | 285 | # rdi = key |
| 283 | # rsi = size in bits | 286 | # rsi = size in bits |
| 284 | # rdx = buffer | 287 | # rdx = buffer |
| @@ -464,6 +467,7 @@ _vpaes_schedule_core: | |||
| 464 | .type _vpaes_schedule_192_smear,\@abi-omnipotent | 467 | .type _vpaes_schedule_192_smear,\@abi-omnipotent |
| 465 | .align 16 | 468 | .align 16 |
| 466 | _vpaes_schedule_192_smear: | 469 | _vpaes_schedule_192_smear: |
| 470 | endbr64 | ||
| 467 | pshufd \$0x80, %xmm6, %xmm0 # d c 0 0 -> c 0 0 0 | 471 | pshufd \$0x80, %xmm6, %xmm0 # d c 0 0 -> c 0 0 0 |
| 468 | pxor %xmm0, %xmm6 # -> c+d c 0 0 | 472 | pxor %xmm0, %xmm6 # -> c+d c 0 0 |
| 469 | pshufd \$0xFE, %xmm7, %xmm0 # b a _ _ -> b b b a | 473 | pshufd \$0xFE, %xmm7, %xmm0 # b a _ _ -> b b b a |
| @@ -495,6 +499,7 @@ _vpaes_schedule_192_smear: | |||
| 495 | .type _vpaes_schedule_round,\@abi-omnipotent | 499 | .type _vpaes_schedule_round,\@abi-omnipotent |
| 496 | .align 16 | 500 | .align 16 |
| 497 | _vpaes_schedule_round: | 501 | _vpaes_schedule_round: |
| 502 | endbr64 | ||
| 498 | # extract rcon from xmm8 | 503 | # extract rcon from xmm8 |
| 499 | pxor %xmm1, %xmm1 | 504 | pxor %xmm1, %xmm1 |
| 500 | palignr \$15, %xmm8, %xmm1 | 505 | palignr \$15, %xmm8, %xmm1 |
| @@ -562,6 +567,7 @@ _vpaes_schedule_low_round: | |||
| 562 | .type _vpaes_schedule_transform,\@abi-omnipotent | 567 | .type _vpaes_schedule_transform,\@abi-omnipotent |
| 563 | .align 16 | 568 | .align 16 |
| 564 | _vpaes_schedule_transform: | 569 | _vpaes_schedule_transform: |
| 570 | endbr64 | ||
| 565 | movdqa %xmm9, %xmm1 | 571 | movdqa %xmm9, %xmm1 |
| 566 | pandn %xmm0, %xmm1 | 572 | pandn %xmm0, %xmm1 |
| 567 | psrld \$4, %xmm1 | 573 | psrld \$4, %xmm1 |
| @@ -600,6 +606,7 @@ _vpaes_schedule_transform: | |||
| 600 | .type _vpaes_schedule_mangle,\@abi-omnipotent | 606 | .type _vpaes_schedule_mangle,\@abi-omnipotent |
| 601 | .align 16 | 607 | .align 16 |
| 602 | _vpaes_schedule_mangle: | 608 | _vpaes_schedule_mangle: |
| 609 | endbr64 | ||
| 603 | movdqa %xmm0, %xmm4 # save xmm0 for later | 610 | movdqa %xmm0, %xmm4 # save xmm0 for later |
| 604 | movdqa .Lk_mc_forward(%rip),%xmm5 | 611 | movdqa .Lk_mc_forward(%rip),%xmm5 |
| 605 | test %rcx, %rcx | 612 | test %rcx, %rcx |
| @@ -673,6 +680,7 @@ _vpaes_schedule_mangle: | |||
| 673 | .type ${PREFIX}_set_encrypt_key,\@function,3 | 680 | .type ${PREFIX}_set_encrypt_key,\@function,3 |
| 674 | .align 16 | 681 | .align 16 |
| 675 | ${PREFIX}_set_encrypt_key: | 682 | ${PREFIX}_set_encrypt_key: |
| 683 | endbr64 | ||
| 676 | ___ | 684 | ___ |
| 677 | $code.=<<___ if ($win64); | 685 | $code.=<<___ if ($win64); |
| 678 | lea -0xb8(%rsp),%rsp | 686 | lea -0xb8(%rsp),%rsp |
| @@ -721,6 +729,7 @@ $code.=<<___; | |||
| 721 | .type ${PREFIX}_set_decrypt_key,\@function,3 | 729 | .type ${PREFIX}_set_decrypt_key,\@function,3 |
| 722 | .align 16 | 730 | .align 16 |
| 723 | ${PREFIX}_set_decrypt_key: | 731 | ${PREFIX}_set_decrypt_key: |
| 732 | endbr64 | ||
| 724 | ___ | 733 | ___ |
| 725 | $code.=<<___ if ($win64); | 734 | $code.=<<___ if ($win64); |
| 726 | lea -0xb8(%rsp),%rsp | 735 | lea -0xb8(%rsp),%rsp |
| @@ -774,6 +783,7 @@ $code.=<<___; | |||
| 774 | .type ${PREFIX}_encrypt,\@function,3 | 783 | .type ${PREFIX}_encrypt,\@function,3 |
| 775 | .align 16 | 784 | .align 16 |
| 776 | ${PREFIX}_encrypt: | 785 | ${PREFIX}_encrypt: |
| 786 | endbr64 | ||
| 777 | ___ | 787 | ___ |
| 778 | $code.=<<___ if ($win64); | 788 | $code.=<<___ if ($win64); |
| 779 | lea -0xb8(%rsp),%rsp | 789 | lea -0xb8(%rsp),%rsp |
| @@ -817,6 +827,7 @@ $code.=<<___; | |||
| 817 | .type ${PREFIX}_decrypt,\@function,3 | 827 | .type ${PREFIX}_decrypt,\@function,3 |
| 818 | .align 16 | 828 | .align 16 |
| 819 | ${PREFIX}_decrypt: | 829 | ${PREFIX}_decrypt: |
| 830 | endbr64 | ||
| 820 | ___ | 831 | ___ |
| 821 | $code.=<<___ if ($win64); | 832 | $code.=<<___ if ($win64); |
| 822 | lea -0xb8(%rsp),%rsp | 833 | lea -0xb8(%rsp),%rsp |
| @@ -866,6 +877,7 @@ $code.=<<___; | |||
| 866 | .type ${PREFIX}_cbc_encrypt,\@function,6 | 877 | .type ${PREFIX}_cbc_encrypt,\@function,6 |
| 867 | .align 16 | 878 | .align 16 |
| 868 | ${PREFIX}_cbc_encrypt: | 879 | ${PREFIX}_cbc_encrypt: |
| 880 | endbr64 | ||
| 869 | xchg $key,$len | 881 | xchg $key,$len |
| 870 | ___ | 882 | ___ |
| 871 | ($len,$key)=($key,$len); | 883 | ($len,$key)=($key,$len); |
| @@ -949,6 +961,7 @@ $code.=<<___; | |||
| 949 | .type _vpaes_preheat,\@abi-omnipotent | 961 | .type _vpaes_preheat,\@abi-omnipotent |
| 950 | .align 16 | 962 | .align 16 |
| 951 | _vpaes_preheat: | 963 | _vpaes_preheat: |
| 964 | endbr64 | ||
| 952 | lea .Lk_s0F(%rip), %r10 | 965 | lea .Lk_s0F(%rip), %r10 |
| 953 | movdqa -0x20(%r10), %xmm10 # .Lk_inv | 966 | movdqa -0x20(%r10), %xmm10 # .Lk_inv |
| 954 | movdqa -0x10(%r10), %xmm11 # .Lk_inv+16 | 967 | movdqa -0x10(%r10), %xmm11 # .Lk_inv+16 |
| @@ -1079,6 +1092,7 @@ $code.=<<___; | |||
| 1079 | .type se_handler,\@abi-omnipotent | 1092 | .type se_handler,\@abi-omnipotent |
| 1080 | .align 16 | 1093 | .align 16 |
| 1081 | se_handler: | 1094 | se_handler: |
| 1095 | endbr64 | ||
| 1082 | push %rsi | 1096 | push %rsi |
| 1083 | push %rdi | 1097 | push %rdi |
| 1084 | push %rbx | 1098 | push %rbx |
diff --git a/src/lib/libcrypto/bn/arch/amd64/bignum_add.S b/src/lib/libcrypto/bn/arch/amd64/bignum_add.S index d56fa5e3a8..06298ca69e 100644 --- a/src/lib/libcrypto/bn/arch/amd64/bignum_add.S +++ b/src/lib/libcrypto/bn/arch/amd64/bignum_add.S | |||
| @@ -49,6 +49,7 @@ | |||
| 49 | 49 | ||
| 50 | 50 | ||
| 51 | S2N_BN_SYMBOL(bignum_add): | 51 | S2N_BN_SYMBOL(bignum_add): |
| 52 | endbr64 | ||
| 52 | 53 | ||
| 53 | #if WINDOWS_ABI | 54 | #if WINDOWS_ABI |
| 54 | push rdi | 55 | push rdi |
diff --git a/src/lib/libcrypto/bn/arch/amd64/bignum_cmadd.S b/src/lib/libcrypto/bn/arch/amd64/bignum_cmadd.S index 1dc1e58705..5ad712749f 100644 --- a/src/lib/libcrypto/bn/arch/amd64/bignum_cmadd.S +++ b/src/lib/libcrypto/bn/arch/amd64/bignum_cmadd.S | |||
| @@ -54,6 +54,7 @@ | |||
| 54 | 54 | ||
| 55 | 55 | ||
| 56 | S2N_BN_SYMBOL(bignum_cmadd): | 56 | S2N_BN_SYMBOL(bignum_cmadd): |
| 57 | endbr64 | ||
| 57 | 58 | ||
| 58 | #if WINDOWS_ABI | 59 | #if WINDOWS_ABI |
| 59 | push rdi | 60 | push rdi |
diff --git a/src/lib/libcrypto/bn/arch/amd64/bignum_cmul.S b/src/lib/libcrypto/bn/arch/amd64/bignum_cmul.S index c1a23ccea4..9199c8f48b 100644 --- a/src/lib/libcrypto/bn/arch/amd64/bignum_cmul.S +++ b/src/lib/libcrypto/bn/arch/amd64/bignum_cmul.S | |||
| @@ -51,6 +51,7 @@ | |||
| 51 | 51 | ||
| 52 | 52 | ||
| 53 | S2N_BN_SYMBOL(bignum_cmul): | 53 | S2N_BN_SYMBOL(bignum_cmul): |
| 54 | endbr64 | ||
| 54 | 55 | ||
| 55 | #if WINDOWS_ABI | 56 | #if WINDOWS_ABI |
| 56 | push rdi | 57 | push rdi |
diff --git a/src/lib/libcrypto/bn/arch/amd64/bignum_mul.S b/src/lib/libcrypto/bn/arch/amd64/bignum_mul.S index 42ac988a19..2d7ed19091 100644 --- a/src/lib/libcrypto/bn/arch/amd64/bignum_mul.S +++ b/src/lib/libcrypto/bn/arch/amd64/bignum_mul.S | |||
| @@ -59,6 +59,7 @@ | |||
| 59 | 59 | ||
| 60 | 60 | ||
| 61 | S2N_BN_SYMBOL(bignum_mul): | 61 | S2N_BN_SYMBOL(bignum_mul): |
| 62 | endbr64 | ||
| 62 | 63 | ||
| 63 | #if WINDOWS_ABI | 64 | #if WINDOWS_ABI |
| 64 | push rdi | 65 | push rdi |
diff --git a/src/lib/libcrypto/bn/arch/amd64/bignum_mul_4_8_alt.S b/src/lib/libcrypto/bn/arch/amd64/bignum_mul_4_8_alt.S index 3b7848b285..f02b09b288 100644 --- a/src/lib/libcrypto/bn/arch/amd64/bignum_mul_4_8_alt.S +++ b/src/lib/libcrypto/bn/arch/amd64/bignum_mul_4_8_alt.S | |||
| @@ -72,6 +72,7 @@ | |||
| 72 | adc h, rdx | 72 | adc h, rdx |
| 73 | 73 | ||
| 74 | S2N_BN_SYMBOL(bignum_mul_4_8_alt): | 74 | S2N_BN_SYMBOL(bignum_mul_4_8_alt): |
| 75 | endbr64 | ||
| 75 | 76 | ||
| 76 | #if WINDOWS_ABI | 77 | #if WINDOWS_ABI |
| 77 | push rdi | 78 | push rdi |
diff --git a/src/lib/libcrypto/bn/arch/amd64/bignum_mul_8_16_alt.S b/src/lib/libcrypto/bn/arch/amd64/bignum_mul_8_16_alt.S index 1be37840df..97be83e1f7 100644 --- a/src/lib/libcrypto/bn/arch/amd64/bignum_mul_8_16_alt.S +++ b/src/lib/libcrypto/bn/arch/amd64/bignum_mul_8_16_alt.S | |||
| @@ -72,6 +72,7 @@ | |||
| 72 | adc h, rdx | 72 | adc h, rdx |
| 73 | 73 | ||
| 74 | S2N_BN_SYMBOL(bignum_mul_8_16_alt): | 74 | S2N_BN_SYMBOL(bignum_mul_8_16_alt): |
| 75 | endbr64 | ||
| 75 | 76 | ||
| 76 | #if WINDOWS_ABI | 77 | #if WINDOWS_ABI |
| 77 | push rdi | 78 | push rdi |
diff --git a/src/lib/libcrypto/bn/arch/amd64/bignum_sqr.S b/src/lib/libcrypto/bn/arch/amd64/bignum_sqr.S index 2e05b9c179..c4a0cabf35 100644 --- a/src/lib/libcrypto/bn/arch/amd64/bignum_sqr.S +++ b/src/lib/libcrypto/bn/arch/amd64/bignum_sqr.S | |||
| @@ -62,6 +62,7 @@ | |||
| 62 | #define llshort ebp | 62 | #define llshort ebp |
| 63 | 63 | ||
| 64 | S2N_BN_SYMBOL(bignum_sqr): | 64 | S2N_BN_SYMBOL(bignum_sqr): |
| 65 | endbr64 | ||
| 65 | 66 | ||
| 66 | #if WINDOWS_ABI | 67 | #if WINDOWS_ABI |
| 67 | push rdi | 68 | push rdi |
diff --git a/src/lib/libcrypto/bn/arch/amd64/bignum_sqr_4_8_alt.S b/src/lib/libcrypto/bn/arch/amd64/bignum_sqr_4_8_alt.S index a635177c65..b228414dce 100644 --- a/src/lib/libcrypto/bn/arch/amd64/bignum_sqr_4_8_alt.S +++ b/src/lib/libcrypto/bn/arch/amd64/bignum_sqr_4_8_alt.S | |||
| @@ -71,6 +71,7 @@ | |||
| 71 | adc c, 0 | 71 | adc c, 0 |
| 72 | 72 | ||
| 73 | S2N_BN_SYMBOL(bignum_sqr_4_8_alt): | 73 | S2N_BN_SYMBOL(bignum_sqr_4_8_alt): |
| 74 | endbr64 | ||
| 74 | 75 | ||
| 75 | #if WINDOWS_ABI | 76 | #if WINDOWS_ABI |
| 76 | push rdi | 77 | push rdi |
diff --git a/src/lib/libcrypto/bn/arch/amd64/bignum_sqr_8_16_alt.S b/src/lib/libcrypto/bn/arch/amd64/bignum_sqr_8_16_alt.S index f698202d29..04efeec7e2 100644 --- a/src/lib/libcrypto/bn/arch/amd64/bignum_sqr_8_16_alt.S +++ b/src/lib/libcrypto/bn/arch/amd64/bignum_sqr_8_16_alt.S | |||
| @@ -103,6 +103,7 @@ | |||
| 103 | adc c, 0 | 103 | adc c, 0 |
| 104 | 104 | ||
| 105 | S2N_BN_SYMBOL(bignum_sqr_8_16_alt): | 105 | S2N_BN_SYMBOL(bignum_sqr_8_16_alt): |
| 106 | endbr64 | ||
| 106 | 107 | ||
| 107 | #if WINDOWS_ABI | 108 | #if WINDOWS_ABI |
| 108 | push rdi | 109 | push rdi |
diff --git a/src/lib/libcrypto/bn/arch/amd64/bignum_sub.S b/src/lib/libcrypto/bn/arch/amd64/bignum_sub.S index f8e1fe35a8..11a9bd7edd 100644 --- a/src/lib/libcrypto/bn/arch/amd64/bignum_sub.S +++ b/src/lib/libcrypto/bn/arch/amd64/bignum_sub.S | |||
| @@ -49,6 +49,7 @@ | |||
| 49 | 49 | ||
| 50 | 50 | ||
| 51 | S2N_BN_SYMBOL(bignum_sub): | 51 | S2N_BN_SYMBOL(bignum_sub): |
| 52 | endbr64 | ||
| 52 | 53 | ||
| 53 | #if WINDOWS_ABI | 54 | #if WINDOWS_ABI |
| 54 | push rdi | 55 | push rdi |
diff --git a/src/lib/libcrypto/bn/arch/amd64/word_clz.S b/src/lib/libcrypto/bn/arch/amd64/word_clz.S index 025e98f9cb..464a9d90fc 100644 --- a/src/lib/libcrypto/bn/arch/amd64/word_clz.S +++ b/src/lib/libcrypto/bn/arch/amd64/word_clz.S | |||
| @@ -30,6 +30,7 @@ | |||
| 30 | .text | 30 | .text |
| 31 | 31 | ||
| 32 | S2N_BN_SYMBOL(word_clz): | 32 | S2N_BN_SYMBOL(word_clz): |
| 33 | endbr64 | ||
| 33 | 34 | ||
| 34 | #if WINDOWS_ABI | 35 | #if WINDOWS_ABI |
| 35 | push rdi | 36 | push rdi |
diff --git a/src/lib/libcrypto/bn/asm/modexp512-x86_64.pl b/src/lib/libcrypto/bn/asm/modexp512-x86_64.pl index 2e71a7f03d..af78fff541 100644 --- a/src/lib/libcrypto/bn/asm/modexp512-x86_64.pl +++ b/src/lib/libcrypto/bn/asm/modexp512-x86_64.pl | |||
| @@ -347,6 +347,7 @@ $code.=<<___; | |||
| 347 | .type MULADD_128x512,\@abi-omnipotent | 347 | .type MULADD_128x512,\@abi-omnipotent |
| 348 | .align 16 | 348 | .align 16 |
| 349 | MULADD_128x512: | 349 | MULADD_128x512: |
| 350 | endbr64 | ||
| 350 | ___ | 351 | ___ |
| 351 | &MULSTEP_512([map("%r$_",(8..15))], "(+8*0)(%rcx)", "%rsi", "%rbp", "%rbx"); | 352 | &MULSTEP_512([map("%r$_",(8..15))], "(+8*0)(%rcx)", "%rsi", "%rbp", "%rbx"); |
| 352 | $code.=<<___; | 353 | $code.=<<___; |
| @@ -414,6 +415,7 @@ $code.=<<___; | |||
| 414 | .type mont_reduce,\@abi-omnipotent | 415 | .type mont_reduce,\@abi-omnipotent |
| 415 | .align 16 | 416 | .align 16 |
| 416 | mont_reduce: | 417 | mont_reduce: |
| 418 | endbr64 | ||
| 417 | ___ | 419 | ___ |
| 418 | 420 | ||
| 419 | my $STACK_DEPTH = 8; | 421 | my $STACK_DEPTH = 8; |
| @@ -676,6 +678,7 @@ $code.=<<___; | |||
| 676 | .type mont_mul_a3b,\@abi-omnipotent | 678 | .type mont_mul_a3b,\@abi-omnipotent |
| 677 | .align 16 | 679 | .align 16 |
| 678 | mont_mul_a3b: | 680 | mont_mul_a3b: |
| 681 | endbr64 | ||
| 679 | # | 682 | # |
| 680 | # multiply tmp = src1 * src2 | 683 | # multiply tmp = src1 * src2 |
| 681 | # For multiply: dst = rcx, src1 = rdi, src2 = rsi | 684 | # For multiply: dst = rcx, src1 = rdi, src2 = rsi |
| @@ -1077,6 +1080,7 @@ $code.=<<___; | |||
| 1077 | .type sqr_reduce,\@abi-omnipotent | 1080 | .type sqr_reduce,\@abi-omnipotent |
| 1078 | .align 16 | 1081 | .align 16 |
| 1079 | sqr_reduce: | 1082 | sqr_reduce: |
| 1083 | endbr64 | ||
| 1080 | mov (+$pResult_offset+8)(%rsp), %rcx | 1084 | mov (+$pResult_offset+8)(%rsp), %rcx |
| 1081 | ___ | 1085 | ___ |
| 1082 | &SQR_512("%rsp+$tmp16_offset+8", "%rcx", [map("%r$_",(10..15,8..9))], "%rbx", "%rbp", "%rsi", "%rdi"); | 1086 | &SQR_512("%rsp+$tmp16_offset+8", "%rcx", [map("%r$_",(10..15,8..9))], "%rbx", "%rbp", "%rsi", "%rdi"); |
| @@ -1106,6 +1110,7 @@ $code.=<<___; | |||
| 1106 | .globl mod_exp_512 | 1110 | .globl mod_exp_512 |
| 1107 | .type mod_exp_512,\@function,4 | 1111 | .type mod_exp_512,\@function,4 |
| 1108 | mod_exp_512: | 1112 | mod_exp_512: |
| 1113 | endbr64 | ||
| 1109 | push %rbp | 1114 | push %rbp |
| 1110 | push %rbx | 1115 | push %rbx |
| 1111 | push %r12 | 1116 | push %r12 |
diff --git a/src/lib/libcrypto/bn/asm/x86_64-mont.pl b/src/lib/libcrypto/bn/asm/x86_64-mont.pl index cae7309d5b..6f5ab331e2 100755 --- a/src/lib/libcrypto/bn/asm/x86_64-mont.pl +++ b/src/lib/libcrypto/bn/asm/x86_64-mont.pl | |||
| @@ -63,6 +63,7 @@ $code=<<___; | |||
| 63 | .type bn_mul_mont,\@function,6 | 63 | .type bn_mul_mont,\@function,6 |
| 64 | .align 16 | 64 | .align 16 |
| 65 | bn_mul_mont: | 65 | bn_mul_mont: |
| 66 | endbr64 | ||
| 66 | test \$3,${num}d | 67 | test \$3,${num}d |
| 67 | jnz .Lmul_enter | 68 | jnz .Lmul_enter |
| 68 | cmp \$8,${num}d | 69 | cmp \$8,${num}d |
| @@ -278,6 +279,7 @@ $code.=<<___; | |||
| 278 | .align 16 | 279 | .align 16 |
| 279 | bn_mul4x_mont: | 280 | bn_mul4x_mont: |
| 280 | .Lmul4x_enter: | 281 | .Lmul4x_enter: |
| 282 | endbr64 | ||
| 281 | push %rbx | 283 | push %rbx |
| 282 | push %rbp | 284 | push %rbp |
| 283 | push %r12 | 285 | push %r12 |
| @@ -705,6 +707,7 @@ $code.=<<___; | |||
| 705 | .align 16 | 707 | .align 16 |
| 706 | bn_sqr4x_mont: | 708 | bn_sqr4x_mont: |
| 707 | .Lsqr4x_enter: | 709 | .Lsqr4x_enter: |
| 710 | endbr64 | ||
| 708 | push %rbx | 711 | push %rbx |
| 709 | push %rbp | 712 | push %rbp |
| 710 | push %r12 | 713 | push %r12 |
diff --git a/src/lib/libcrypto/bn/asm/x86_64-mont5.pl b/src/lib/libcrypto/bn/asm/x86_64-mont5.pl index 7b9c6df273..3b3325a6cc 100755 --- a/src/lib/libcrypto/bn/asm/x86_64-mont5.pl +++ b/src/lib/libcrypto/bn/asm/x86_64-mont5.pl | |||
| @@ -57,6 +57,7 @@ $code=<<___; | |||
| 57 | .type bn_mul_mont_gather5,\@function,6 | 57 | .type bn_mul_mont_gather5,\@function,6 |
| 58 | .align 64 | 58 | .align 64 |
| 59 | bn_mul_mont_gather5: | 59 | bn_mul_mont_gather5: |
| 60 | endbr64 | ||
| 60 | test \$3,${num}d | 61 | test \$3,${num}d |
| 61 | jnz .Lmul_enter | 62 | jnz .Lmul_enter |
| 62 | cmp \$8,${num}d | 63 | cmp \$8,${num}d |
| @@ -387,6 +388,7 @@ $code.=<<___; | |||
| 387 | .type bn_mul4x_mont_gather5,\@function,6 | 388 | .type bn_mul4x_mont_gather5,\@function,6 |
| 388 | .align 16 | 389 | .align 16 |
| 389 | bn_mul4x_mont_gather5: | 390 | bn_mul4x_mont_gather5: |
| 391 | endbr64 | ||
| 390 | .Lmul4x_enter: | 392 | .Lmul4x_enter: |
| 391 | mov ${num}d,${num}d | 393 | mov ${num}d,${num}d |
| 392 | movd `($win64?56:8)`(%rsp),%xmm5 # load 7th argument | 394 | movd `($win64?56:8)`(%rsp),%xmm5 # load 7th argument |
| @@ -925,6 +927,7 @@ $code.=<<___; | |||
| 925 | .type bn_scatter5,\@abi-omnipotent | 927 | .type bn_scatter5,\@abi-omnipotent |
| 926 | .align 16 | 928 | .align 16 |
| 927 | bn_scatter5: | 929 | bn_scatter5: |
| 930 | endbr64 | ||
| 928 | cmp \$0, $num | 931 | cmp \$0, $num |
| 929 | jz .Lscatter_epilogue | 932 | jz .Lscatter_epilogue |
| 930 | lea ($tbl,$idx,8),$tbl | 933 | lea ($tbl,$idx,8),$tbl |
| @@ -943,6 +946,7 @@ bn_scatter5: | |||
| 943 | .type bn_gather5,\@abi-omnipotent | 946 | .type bn_gather5,\@abi-omnipotent |
| 944 | .align 16 | 947 | .align 16 |
| 945 | bn_gather5: | 948 | bn_gather5: |
| 949 | endbr64 | ||
| 946 | .LSEH_begin_bn_gather5: # Win64 thing, but harmless in other cases | 950 | .LSEH_begin_bn_gather5: # Win64 thing, but harmless in other cases |
| 947 | # I can't trust assembler to use specific encoding:-( | 951 | # I can't trust assembler to use specific encoding:-( |
| 948 | .byte 0x4c,0x8d,0x14,0x24 # lea (%rsp),%r10 | 952 | .byte 0x4c,0x8d,0x14,0x24 # lea (%rsp),%r10 |
| @@ -1053,6 +1057,7 @@ $code.=<<___; | |||
| 1053 | .type mul_handler,\@abi-omnipotent | 1057 | .type mul_handler,\@abi-omnipotent |
| 1054 | .align 16 | 1058 | .align 16 |
| 1055 | mul_handler: | 1059 | mul_handler: |
| 1060 | endbr64 | ||
| 1056 | push %rsi | 1061 | push %rsi |
| 1057 | push %rdi | 1062 | push %rdi |
| 1058 | push %rbx | 1063 | push %rbx |
diff --git a/src/lib/libcrypto/camellia/asm/cmll-x86_64.pl b/src/lib/libcrypto/camellia/asm/cmll-x86_64.pl index 586e5d6e93..3ceed3e899 100644 --- a/src/lib/libcrypto/camellia/asm/cmll-x86_64.pl +++ b/src/lib/libcrypto/camellia/asm/cmll-x86_64.pl | |||
| @@ -116,6 +116,7 @@ $code=<<___; | |||
| 116 | .type Camellia_EncryptBlock,\@abi-omnipotent | 116 | .type Camellia_EncryptBlock,\@abi-omnipotent |
| 117 | .align 16 | 117 | .align 16 |
| 118 | Camellia_EncryptBlock: | 118 | Camellia_EncryptBlock: |
| 119 | endbr64 | ||
| 119 | movl \$128,%eax | 120 | movl \$128,%eax |
| 120 | subl $arg0d,%eax | 121 | subl $arg0d,%eax |
| 121 | movl \$3,$arg0d | 122 | movl \$3,$arg0d |
| @@ -128,6 +129,7 @@ Camellia_EncryptBlock: | |||
| 128 | .align 16 | 129 | .align 16 |
| 129 | .Lenc_rounds: | 130 | .Lenc_rounds: |
| 130 | Camellia_EncryptBlock_Rounds: | 131 | Camellia_EncryptBlock_Rounds: |
| 132 | endbr64 | ||
| 131 | push %rbx | 133 | push %rbx |
| 132 | push %rbp | 134 | push %rbp |
| 133 | push %r13 | 135 | push %r13 |
| @@ -176,6 +178,7 @@ Camellia_EncryptBlock_Rounds: | |||
| 176 | .type _x86_64_Camellia_encrypt,\@abi-omnipotent | 178 | .type _x86_64_Camellia_encrypt,\@abi-omnipotent |
| 177 | .align 16 | 179 | .align 16 |
| 178 | _x86_64_Camellia_encrypt: | 180 | _x86_64_Camellia_encrypt: |
| 181 | endbr64 | ||
| 179 | xor 0($key),@S[1] | 182 | xor 0($key),@S[1] |
| 180 | xor 4($key),@S[0] # ^=key[0-3] | 183 | xor 4($key),@S[0] # ^=key[0-3] |
| 181 | xor 8($key),@S[3] | 184 | xor 8($key),@S[3] |
| @@ -226,6 +229,7 @@ $code.=<<___; | |||
| 226 | .type Camellia_DecryptBlock,\@abi-omnipotent | 229 | .type Camellia_DecryptBlock,\@abi-omnipotent |
| 227 | .align 16 | 230 | .align 16 |
| 228 | Camellia_DecryptBlock: | 231 | Camellia_DecryptBlock: |
| 232 | endbr64 | ||
| 229 | movl \$128,%eax | 233 | movl \$128,%eax |
| 230 | subl $arg0d,%eax | 234 | subl $arg0d,%eax |
| 231 | movl \$3,$arg0d | 235 | movl \$3,$arg0d |
| @@ -238,6 +242,7 @@ Camellia_DecryptBlock: | |||
| 238 | .align 16 | 242 | .align 16 |
| 239 | .Ldec_rounds: | 243 | .Ldec_rounds: |
| 240 | Camellia_DecryptBlock_Rounds: | 244 | Camellia_DecryptBlock_Rounds: |
| 245 | endbr64 | ||
| 241 | push %rbx | 246 | push %rbx |
| 242 | push %rbp | 247 | push %rbp |
| 243 | push %r13 | 248 | push %r13 |
| @@ -286,6 +291,7 @@ Camellia_DecryptBlock_Rounds: | |||
| 286 | .type _x86_64_Camellia_decrypt,\@abi-omnipotent | 291 | .type _x86_64_Camellia_decrypt,\@abi-omnipotent |
| 287 | .align 16 | 292 | .align 16 |
| 288 | _x86_64_Camellia_decrypt: | 293 | _x86_64_Camellia_decrypt: |
| 294 | endbr64 | ||
| 289 | xor 0($key),@S[1] | 295 | xor 0($key),@S[1] |
| 290 | xor 4($key),@S[0] # ^=key[0-3] | 296 | xor 4($key),@S[0] # ^=key[0-3] |
| 291 | xor 8($key),@S[3] | 297 | xor 8($key),@S[3] |
| @@ -400,6 +406,7 @@ $code.=<<___; | |||
| 400 | .type Camellia_Ekeygen,\@function,3 | 406 | .type Camellia_Ekeygen,\@function,3 |
| 401 | .align 16 | 407 | .align 16 |
| 402 | Camellia_Ekeygen: | 408 | Camellia_Ekeygen: |
| 409 | endbr64 | ||
| 403 | push %rbx | 410 | push %rbx |
| 404 | push %rbp | 411 | push %rbp |
| 405 | push %r13 | 412 | push %r13 |
| @@ -630,6 +637,7 @@ $code.=<<___; | |||
| 630 | .type Camellia_cbc_encrypt,\@function,6 | 637 | .type Camellia_cbc_encrypt,\@function,6 |
| 631 | .align 16 | 638 | .align 16 |
| 632 | Camellia_cbc_encrypt: | 639 | Camellia_cbc_encrypt: |
| 640 | endbr64 | ||
| 633 | cmp \$0,%rdx | 641 | cmp \$0,%rdx |
| 634 | je .Lcbc_abort | 642 | je .Lcbc_abort |
| 635 | push %rbx | 643 | push %rbx |
diff --git a/src/lib/libcrypto/md5/asm/md5-x86_64.pl b/src/lib/libcrypto/md5/asm/md5-x86_64.pl index c902a1b532..06d69094f4 100755 --- a/src/lib/libcrypto/md5/asm/md5-x86_64.pl +++ b/src/lib/libcrypto/md5/asm/md5-x86_64.pl | |||
| @@ -128,6 +128,7 @@ $code .= <<EOF; | |||
| 128 | .globl md5_block_asm_data_order | 128 | .globl md5_block_asm_data_order |
| 129 | .type md5_block_asm_data_order,\@function,3 | 129 | .type md5_block_asm_data_order,\@function,3 |
| 130 | md5_block_asm_data_order: | 130 | md5_block_asm_data_order: |
| 131 | endbr64 | ||
| 131 | push %rbp | 132 | push %rbp |
| 132 | push %rbx | 133 | push %rbx |
| 133 | push %r12 | 134 | push %r12 |
diff --git a/src/lib/libcrypto/modes/asm/ghash-x86_64.pl b/src/lib/libcrypto/modes/asm/ghash-x86_64.pl index 71d0822ac9..9ce0c38141 100644 --- a/src/lib/libcrypto/modes/asm/ghash-x86_64.pl +++ b/src/lib/libcrypto/modes/asm/ghash-x86_64.pl | |||
| @@ -412,6 +412,7 @@ $code.=<<___; | |||
| 412 | .type gcm_init_clmul,\@abi-omnipotent | 412 | .type gcm_init_clmul,\@abi-omnipotent |
| 413 | .align 16 | 413 | .align 16 |
| 414 | gcm_init_clmul: | 414 | gcm_init_clmul: |
| 415 | endbr64 | ||
| 415 | movdqu ($Xip),$Hkey | 416 | movdqu ($Xip),$Hkey |
| 416 | pshufd \$0b01001110,$Hkey,$Hkey # dword swap | 417 | pshufd \$0b01001110,$Hkey,$Hkey # dword swap |
| 417 | 418 | ||
| @@ -449,6 +450,7 @@ $code.=<<___; | |||
| 449 | .type gcm_gmult_clmul,\@abi-omnipotent | 450 | .type gcm_gmult_clmul,\@abi-omnipotent |
| 450 | .align 16 | 451 | .align 16 |
| 451 | gcm_gmult_clmul: | 452 | gcm_gmult_clmul: |
| 453 | endbr64 | ||
| 452 | movdqu ($Xip),$Xi | 454 | movdqu ($Xip),$Xi |
| 453 | movdqa .Lbswap_mask(%rip),$T3 | 455 | movdqa .Lbswap_mask(%rip),$T3 |
| 454 | movdqu ($Htbl),$Hkey | 456 | movdqu ($Htbl),$Hkey |
| @@ -476,6 +478,7 @@ $code.=<<___; | |||
| 476 | .type gcm_ghash_clmul,\@abi-omnipotent | 478 | .type gcm_ghash_clmul,\@abi-omnipotent |
| 477 | .align 16 | 479 | .align 16 |
| 478 | gcm_ghash_clmul: | 480 | gcm_ghash_clmul: |
| 481 | endbr64 | ||
| 479 | ___ | 482 | ___ |
| 480 | $code.=<<___ if ($win64); | 483 | $code.=<<___ if ($win64); |
| 481 | .LSEH_begin_gcm_ghash_clmul: | 484 | .LSEH_begin_gcm_ghash_clmul: |
| @@ -686,6 +689,7 @@ $code.=<<___; | |||
| 686 | .type se_handler,\@abi-omnipotent | 689 | .type se_handler,\@abi-omnipotent |
| 687 | .align 16 | 690 | .align 16 |
| 688 | se_handler: | 691 | se_handler: |
| 692 | endbr64 | ||
| 689 | push %rsi | 693 | push %rsi |
| 690 | push %rdi | 694 | push %rdi |
| 691 | push %rbx | 695 | push %rbx |
diff --git a/src/lib/libcrypto/rc4/asm/rc4-md5-x86_64.pl b/src/lib/libcrypto/rc4/asm/rc4-md5-x86_64.pl index 501d9e936b..6d058bd9d4 100644 --- a/src/lib/libcrypto/rc4/asm/rc4-md5-x86_64.pl +++ b/src/lib/libcrypto/rc4/asm/rc4-md5-x86_64.pl | |||
| @@ -109,6 +109,7 @@ $code.=<<___; | |||
| 109 | .globl $func | 109 | .globl $func |
| 110 | .type $func,\@function,$nargs | 110 | .type $func,\@function,$nargs |
| 111 | $func: | 111 | $func: |
| 112 | endbr64 | ||
| 112 | cmp \$0,$len | 113 | cmp \$0,$len |
| 113 | je .Labort | 114 | je .Labort |
| 114 | push %rbx | 115 | push %rbx |
| @@ -453,6 +454,7 @@ $code.=<<___; | |||
| 453 | .type RC4_set_key,\@function,3 | 454 | .type RC4_set_key,\@function,3 |
| 454 | .align 16 | 455 | .align 16 |
| 455 | RC4_set_key: | 456 | RC4_set_key: |
| 457 | endbr64 | ||
| 456 | lea 8($dat),$dat | 458 | lea 8($dat),$dat |
| 457 | lea ($inp,$len),$inp | 459 | lea ($inp,$len),$inp |
| 458 | neg $len | 460 | neg $len |
| @@ -494,6 +496,7 @@ RC4_set_key: | |||
| 494 | .type RC4_options,\@abi-omnipotent | 496 | .type RC4_options,\@abi-omnipotent |
| 495 | .align 16 | 497 | .align 16 |
| 496 | RC4_options: | 498 | RC4_options: |
| 499 | endbr64 | ||
| 497 | lea .Lopts(%rip),%rax | 500 | lea .Lopts(%rip),%rax |
| 498 | ret | 501 | ret |
| 499 | .align 64 | 502 | .align 64 |
diff --git a/src/lib/libcrypto/rc4/asm/rc4-x86_64.pl b/src/lib/libcrypto/rc4/asm/rc4-x86_64.pl index 8de869489f..2bac7d744d 100755 --- a/src/lib/libcrypto/rc4/asm/rc4-x86_64.pl +++ b/src/lib/libcrypto/rc4/asm/rc4-x86_64.pl | |||
| @@ -127,7 +127,9 @@ $code=<<___; | |||
| 127 | .globl RC4 | 127 | .globl RC4 |
| 128 | .type RC4,\@function,4 | 128 | .type RC4,\@function,4 |
| 129 | .align 16 | 129 | .align 16 |
| 130 | RC4: or $len,$len | 130 | RC4: |
| 131 | endbr64 | ||
| 132 | or $len,$len | ||
| 131 | jne .Lentry | 133 | jne .Lentry |
| 132 | ret | 134 | ret |
| 133 | .Lentry: | 135 | .Lentry: |
| @@ -433,6 +435,7 @@ $code.=<<___; | |||
| 433 | .type RC4_set_key,\@function,3 | 435 | .type RC4_set_key,\@function,3 |
| 434 | .align 16 | 436 | .align 16 |
| 435 | RC4_set_key: | 437 | RC4_set_key: |
| 438 | endbr64 | ||
| 436 | lea 8($dat),$dat | 439 | lea 8($dat),$dat |
| 437 | lea ($inp,$len),$inp | 440 | lea ($inp,$len),$inp |
| 438 | neg $len | 441 | neg $len |
| @@ -505,6 +508,7 @@ RC4_set_key: | |||
| 505 | .type RC4_options,\@abi-omnipotent | 508 | .type RC4_options,\@abi-omnipotent |
| 506 | .align 16 | 509 | .align 16 |
| 507 | RC4_options: | 510 | RC4_options: |
| 511 | endbr64 | ||
| 508 | lea .Lopts(%rip),%rax | 512 | lea .Lopts(%rip),%rax |
| 509 | mov OPENSSL_ia32cap_P(%rip),%edx | 513 | mov OPENSSL_ia32cap_P(%rip),%edx |
| 510 | bt \$IA32CAP_BIT0_INTELP4,%edx | 514 | bt \$IA32CAP_BIT0_INTELP4,%edx |
diff --git a/src/lib/libcrypto/sha/asm/sha1-x86_64.pl b/src/lib/libcrypto/sha/asm/sha1-x86_64.pl index 43eee73c4a..e15ff47f88 100755 --- a/src/lib/libcrypto/sha/asm/sha1-x86_64.pl +++ b/src/lib/libcrypto/sha/asm/sha1-x86_64.pl | |||
| @@ -222,6 +222,7 @@ $code.=<<___; | |||
| 222 | .type sha1_block_data_order,\@function,3 | 222 | .type sha1_block_data_order,\@function,3 |
| 223 | .align 16 | 223 | .align 16 |
| 224 | sha1_block_data_order: | 224 | sha1_block_data_order: |
| 225 | endbr64 | ||
| 225 | mov OPENSSL_ia32cap_P+0(%rip),%r9d | 226 | mov OPENSSL_ia32cap_P+0(%rip),%r9d |
| 226 | mov OPENSSL_ia32cap_P+4(%rip),%r8d | 227 | mov OPENSSL_ia32cap_P+4(%rip),%r8d |
| 227 | test \$IA32CAP_MASK1_SSSE3,%r8d # check SSSE3 bit | 228 | test \$IA32CAP_MASK1_SSSE3,%r8d # check SSSE3 bit |
| @@ -309,6 +310,7 @@ $code.=<<___; | |||
| 309 | .align 16 | 310 | .align 16 |
| 310 | sha1_block_data_order_ssse3: | 311 | sha1_block_data_order_ssse3: |
| 311 | _ssse3_shortcut: | 312 | _ssse3_shortcut: |
| 313 | endbr64 | ||
| 312 | push %rbx | 314 | push %rbx |
| 313 | push %rbp | 315 | push %rbp |
| 314 | push %r12 | 316 | push %r12 |
| @@ -729,6 +731,7 @@ $code.=<<___; | |||
| 729 | .align 16 | 731 | .align 16 |
| 730 | sha1_block_data_order_avx: | 732 | sha1_block_data_order_avx: |
| 731 | _avx_shortcut: | 733 | _avx_shortcut: |
| 734 | endbr64 | ||
| 732 | push %rbx | 735 | push %rbx |
| 733 | push %rbp | 736 | push %rbp |
| 734 | push %r12 | 737 | push %r12 |
| @@ -1099,6 +1102,7 @@ $code.=<<___; | |||
| 1099 | .type se_handler,\@abi-omnipotent | 1102 | .type se_handler,\@abi-omnipotent |
| 1100 | .align 16 | 1103 | .align 16 |
| 1101 | se_handler: | 1104 | se_handler: |
| 1105 | endbr64 | ||
| 1102 | push %rsi | 1106 | push %rsi |
| 1103 | push %rdi | 1107 | push %rdi |
| 1104 | push %rbx | 1108 | push %rbx |
diff --git a/src/lib/libcrypto/sha/asm/sha512-x86_64.pl b/src/lib/libcrypto/sha/asm/sha512-x86_64.pl index 0517eab660..120693feeb 100755 --- a/src/lib/libcrypto/sha/asm/sha512-x86_64.pl +++ b/src/lib/libcrypto/sha/asm/sha512-x86_64.pl | |||
| @@ -175,6 +175,7 @@ $code=<<___; | |||
| 175 | .type $func,\@function,4 | 175 | .type $func,\@function,4 |
| 176 | .align 16 | 176 | .align 16 |
| 177 | $func: | 177 | $func: |
| 178 | endbr64 | ||
| 178 | push %rbx | 179 | push %rbx |
| 179 | push %rbp | 180 | push %rbp |
| 180 | push %r12 | 181 | push %r12 |
diff --git a/src/lib/libcrypto/whrlpool/asm/wp-x86_64.pl b/src/lib/libcrypto/whrlpool/asm/wp-x86_64.pl index de5d3acfb4..7958f6d289 100644 --- a/src/lib/libcrypto/whrlpool/asm/wp-x86_64.pl +++ b/src/lib/libcrypto/whrlpool/asm/wp-x86_64.pl | |||
| @@ -57,6 +57,7 @@ $code=<<___; | |||
| 57 | .type $func,\@function,3 | 57 | .type $func,\@function,3 |
| 58 | .align 16 | 58 | .align 16 |
| 59 | $func: | 59 | $func: |
| 60 | endbr64 | ||
| 60 | push %rbx | 61 | push %rbx |
| 61 | push %rbp | 62 | push %rbp |
| 62 | push %r12 | 63 | push %r12 |
diff --git a/src/lib/libcrypto/x86_64cpuid.pl b/src/lib/libcrypto/x86_64cpuid.pl index 1b67d1110f..dc56732a28 100644 --- a/src/lib/libcrypto/x86_64cpuid.pl +++ b/src/lib/libcrypto/x86_64cpuid.pl | |||
| @@ -18,6 +18,7 @@ print<<___; | |||
| 18 | .extern OPENSSL_cpuid_setup | 18 | .extern OPENSSL_cpuid_setup |
| 19 | .hidden OPENSSL_cpuid_setup | 19 | .hidden OPENSSL_cpuid_setup |
| 20 | .section .init | 20 | .section .init |
| 21 | endbr64 | ||
| 21 | call OPENSSL_cpuid_setup | 22 | call OPENSSL_cpuid_setup |
| 22 | 23 | ||
| 23 | .extern OPENSSL_ia32cap_P | 24 | .extern OPENSSL_ia32cap_P |
| @@ -29,6 +30,7 @@ print<<___; | |||
| 29 | .type OPENSSL_ia32_cpuid,\@abi-omnipotent | 30 | .type OPENSSL_ia32_cpuid,\@abi-omnipotent |
| 30 | .align 16 | 31 | .align 16 |
| 31 | OPENSSL_ia32_cpuid: | 32 | OPENSSL_ia32_cpuid: |
| 33 | endbr64 | ||
| 32 | mov %rbx,%r8 # save %rbx | 34 | mov %rbx,%r8 # save %rbx |
| 33 | 35 | ||
| 34 | xor %eax,%eax | 36 | xor %eax,%eax |
