From f3515240de9513ead975985c9f8ab714022cac8e Mon Sep 17 00:00:00 2001 From: Jussi Kivilinna Date: Sun, 1 Sep 2013 16:50:55 +0300 Subject: 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 --- cipher/camellia-aesni-avx2-amd64.S | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'cipher/camellia-aesni-avx2-amd64.S') 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; -- cgit v1.2.1