summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/aes/asm/aes-x86_64.pl
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/aes/asm/aes-x86_64.pl')
-rwxr-xr-xsrc/lib/libcrypto/aes/asm/aes-x86_64.pl13
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
594asm_AES_encrypt: 596asm_AES_encrypt:
595AES_encrypt: 597AES_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
1193asm_AES_decrypt: 1198asm_AES_decrypt:
1194AES_decrypt: 1199AES_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
1293AES_set_encrypt_key: 1299AES_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
1563AES_set_decrypt_key: 1571AES_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
1661asm_AES_cbc_encrypt: 1670asm_AES_cbc_encrypt:
1662AES_cbc_encrypt: 1671AES_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
2553block_se_handler: 2563block_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
2611key_se_handler: 2622key_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
2668cbc_se_handler: 2680cbc_se_handler:
2681 endbr64
2669 push %rsi 2682 push %rsi
2670 push %rdi 2683 push %rdi
2671 push %rbx 2684 push %rbx