diff options
Diffstat (limited to 'src/lib/libcrypto/aes/asm/aes-x86_64.pl')
-rwxr-xr-x | src/lib/libcrypto/aes/asm/aes-x86_64.pl | 13 |
1 files changed, 13 insertions, 0 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 |