summaryrefslogtreecommitdiff
path: root/cipher/camellia-aesni-avx2-amd64.S
diff options
context:
space:
mode:
authorJussi Kivilinna <jussi.kivilinna@iki.fi>2013-09-01 16:50:55 +0300
committerJussi Kivilinna <jussi.kivilinna@iki.fi>2013-09-01 16:50:55 +0300
commitf3515240de9513ead975985c9f8ab714022cac8e (patch)
tree7bae3811a618055de5ab9ab89e6f69145a75aade /cipher/camellia-aesni-avx2-amd64.S
parent8b735cb563dff7aafbf8a970972522b5621e665c (diff)
downloadlibgcrypt-f3515240de9513ead975985c9f8ab714022cac8e.tar.gz
camellia-aesni-avx2-amd64: Move register clearing to assembly functions
* cipher/camellia-aesni-avx2-amd64.S (_gcry_camellia_aesni_avx2_ctr_enc): Add 'vzeroall'. (_gcry_camellia_aesni_avx2_cbc_dec) (_gcry_camellia_aesni_avx2_cfb_dec): Add 'vzeroupper' at head and 'vzeroall' at tail. * cipher/camellia-glue.c (_gcry_serpent_ctr_enc, _gcry_serpent_cbc_dec) (_gcry_serpent_avx2_cfb_dec) [USE_AESNI_AVX2]: Remove register clearing. -- Patch moves register clearing with 'vzeroall' to assembly functions and adds missing 'vzeroupper' instructions at head of assembly functions. Signed-off-by: Jussi Kivilinna <jussi.kivilinna@iki.fi>
Diffstat (limited to 'cipher/camellia-aesni-avx2-amd64.S')
-rw-r--r--cipher/camellia-aesni-avx2-amd64.S10
1 files changed, 10 insertions, 0 deletions
diff --git a/cipher/camellia-aesni-avx2-amd64.S b/cipher/camellia-aesni-avx2-amd64.S
index da427b47..7e31323b 100644
--- a/cipher/camellia-aesni-avx2-amd64.S
+++ b/cipher/camellia-aesni-avx2-amd64.S
@@ -1104,6 +1104,8 @@ _gcry_camellia_aesni_avx2_ctr_enc:
%ymm15, %ymm14, %ymm13, %ymm12, %ymm11, %ymm10, %ymm9,
%ymm8, %rsi);
+ vzeroall;
+
ret;
.size _gcry_camellia_aesni_avx2_ctr_enc,.-_gcry_camellia_aesni_avx2_ctr_enc;
@@ -1119,6 +1121,8 @@ _gcry_camellia_aesni_avx2_cbc_dec:
* %rcx: iv
*/
+ vzeroupper;
+
movq %rcx, %r9;
cmpl $128, key_bitlength(CTX);
@@ -1171,6 +1175,8 @@ _gcry_camellia_aesni_avx2_cbc_dec:
movq %rax, (0)(%r9);
movq %rcx, (8)(%r9);
+ vzeroall;
+
ret;
.size _gcry_camellia_aesni_avx2_cbc_dec,.-_gcry_camellia_aesni_avx2_cbc_dec;
@@ -1186,6 +1192,8 @@ _gcry_camellia_aesni_avx2_cfb_dec:
* %rcx: iv
*/
+ vzeroupper;
+
movq %rsp, %r10;
subq $(16 * 32), %rsp;
andq $~31, %rsp;
@@ -1240,6 +1248,8 @@ _gcry_camellia_aesni_avx2_cfb_dec:
%ymm15, %ymm14, %ymm13, %ymm12, %ymm11, %ymm10, %ymm9,
%ymm8, %rsi);
+ vzeroall;
+
ret;
.size _gcry_camellia_aesni_avx2_cfb_dec,.-_gcry_camellia_aesni_avx2_cfb_dec;