]> sourceware.org Git - glibc.git/commitdiff
Optimize __init_des_r
authorUlrich Drepper <drepper@gmail.com>
Sat, 23 Jul 2011 03:25:40 +0000 (23:25 -0400)
committerUlrich Drepper <drepper@gmail.com>
Sat, 23 Jul 2011 03:25:40 +0000 (23:25 -0400)
ChangeLog
crypt/crypt_util.c

index ca3d4c25c9c8e6325678a8045fd5aa8cadd02a73..5d6658ad51a962b7356fc3f7e318176bf468ed40 100644 (file)
--- 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>
index 2576ccbce5e4f45d2b5c09ee983754eceaa3537b..04b262d9c898d4c854d8b75ca13761e2a356284c 100644 (file)
@@ -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;
This page took 0.048508 seconds and 5 git commands to generate.