diff options
author | Jussi Kivilinna <jussi.kivilinna@iki.fi> | 2013-08-22 15:26:52 +0300 |
---|---|---|
committer | Jussi Kivilinna <jussi.kivilinna@iki.fi> | 2013-08-22 15:26:52 +0300 |
commit | 040aa7688296e93659cb32ca31e9a001a6ab1edd (patch) | |
tree | a4b662bb71cdd0ac18d19bb9792532b4ed2030fb /cipher/serpent-sse2-amd64.S | |
parent | 82db04a6a0058cf870485459abe7c1659b138ec5 (diff) | |
download | libgcrypt-040aa7688296e93659cb32ca31e9a001a6ab1edd.tar.gz |
serpent-sse2-amd64: Move register clearing to assembly functions
cipher/serpent-sse2-amd64.S (_gcry_serpent_sse2_ctr_enc)
(_gcry_serpent_sse2_cbc_dec, _gcry_serpent_sse2_cfb_dec): Clear used
XMM registers.
cipher/serpent.c (_gcry_serpent_ctr_enc, _gcry_serpent_cbc_dec)
( _gcry_serpent_cfb_dec) [USE_SSE2]: Remove XMM register clearing from
bulk functions.
--
Signed-off-by: Jussi Kivilinna <jussi.kivilinna@iki.fi>
Diffstat (limited to 'cipher/serpent-sse2-amd64.S')
-rw-r--r-- | cipher/serpent-sse2-amd64.S | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/cipher/serpent-sse2-amd64.S b/cipher/serpent-sse2-amd64.S index fe9feeea..a5cf3539 100644 --- a/cipher/serpent-sse2-amd64.S +++ b/cipher/serpent-sse2-amd64.S @@ -756,6 +756,20 @@ _gcry_serpent_sse2_ctr_enc: movdqu RB2, (6 * 16)(%rsi); movdqu RB3, (7 * 16)(%rsi); + /* clear the used registers */ + pxor RA0, RA0; + pxor RA1, RA1; + pxor RA2, RA2; + pxor RA3, RA3; + pxor RB0, RB0; + pxor RB1, RB1; + pxor RB2, RB2; + pxor RB3, RB3; + pxor RTMP0, RTMP0; + pxor RTMP1, RTMP1; + pxor RTMP2, RTMP2; + pxor RNOT, RNOT; + ret .size _gcry_serpent_sse2_ctr_enc,.-_gcry_serpent_sse2_ctr_enc; @@ -819,6 +833,20 @@ _gcry_serpent_sse2_cbc_dec: movdqu RB2, (6 * 16)(%rsi); movdqu RB3, (7 * 16)(%rsi); + /* clear the used registers */ + pxor RA0, RA0; + pxor RA1, RA1; + pxor RA2, RA2; + pxor RA3, RA3; + pxor RB0, RB0; + pxor RB1, RB1; + pxor RB2, RB2; + pxor RB3, RB3; + pxor RTMP0, RTMP0; + pxor RTMP1, RTMP1; + pxor RTMP2, RTMP2; + pxor RNOT, RNOT; + ret .size _gcry_serpent_sse2_cbc_dec,.-_gcry_serpent_sse2_cbc_dec; @@ -885,6 +913,20 @@ _gcry_serpent_sse2_cfb_dec: movdqu RB2, (6 * 16)(%rsi); movdqu RB3, (7 * 16)(%rsi); + /* clear the used registers */ + pxor RA0, RA0; + pxor RA1, RA1; + pxor RA2, RA2; + pxor RA3, RA3; + pxor RB0, RB0; + pxor RB1, RB1; + pxor RB2, RB2; + pxor RB3, RB3; + pxor RTMP0, RTMP0; + pxor RTMP1, RTMP1; + pxor RTMP2, RTMP2; + pxor RNOT, RNOT; + ret .size _gcry_serpent_sse2_cfb_dec,.-_gcry_serpent_sse2_cfb_dec; |