diff options
author | Ulrich Drepper <drepper@gmail.com> | 2011-07-22 23:25:40 -0400 |
---|---|---|
committer | Ulrich Drepper <drepper@gmail.com> | 2011-07-22 23:25:40 -0400 |
commit | 8e2045f55574da097d4fee54aaf1496546e8950c (patch) | |
tree | 27e21e3ada767c5c440bd5528ba7b2c787b22ab1 | |
parent | 90f139ddd0cfbb1f0b0ebd1fb73d4e2a2765f83b (diff) | |
download | glibc-8e2045f55574da097d4fee54aaf1496546e8950c.tar.gz glibc-8e2045f55574da097d4fee54aaf1496546e8950c.tar.xz glibc-8e2045f55574da097d4fee54aaf1496546e8950c.zip |
Optimize __init_des_r
-rw-r--r-- | ChangeLog | 2 | ||||
-rw-r--r-- | crypt/crypt_util.c | 18 |
2 files changed, 16 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog index ca3d4c25c9..5d6658ad51 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,7 @@ 2011-07-22 Ulrich Drepper <drepper@gmail.com> + * crypt/crypt_util.c (__init_des_r): Optimize memset calls. + * crypt/crypt_util.c (__init_des_r): Add read barrier as well. 2011-07-21 Andreas Schwab <schwab@redhat.com> diff --git a/crypt/crypt_util.c b/crypt/crypt_util.c index 2576ccbce5..04b262d9c8 100644 --- a/crypt/crypt_util.c +++ b/crypt/crypt_util.c @@ -492,10 +492,20 @@ small_tables_done: * */ - _ufc_clearmem((char*)__data->sb0, (int)sizeof(__data->sb0)); - _ufc_clearmem((char*)__data->sb1, (int)sizeof(__data->sb1)); - _ufc_clearmem((char*)__data->sb2, (int)sizeof(__data->sb2)); - _ufc_clearmem((char*)__data->sb3, (int)sizeof(__data->sb3)); + if (__data->sb0 + sizeof (__data->sb0) == __data->sb1 + && __data->sb1 + sizeof (__data->sb1) == __data->sb2 + && __data->sb2 + sizeof (__data->sb2) == __data->sb3) + _ufc_clearmem(__data->sb0, + (int)sizeof(__data->sb0) + + (int)sizeof(__data->sb1) + + (int)sizeof(__data->sb2) + + (int)sizeof(__data->sb3)); + else { + _ufc_clearmem(__data->sb0, (int)sizeof(__data->sb0)); + _ufc_clearmem(__data->sb1, (int)sizeof(__data->sb1)); + _ufc_clearmem(__data->sb2, (int)sizeof(__data->sb2)); + _ufc_clearmem(__data->sb3, (int)sizeof(__data->sb3)); + } for(sg = 0; sg < 4; sg++) { int j1, j2; |