diff options
author | Ulrich Drepper <drepper@gmail.com> | 2011-12-10 11:53:44 -0500 |
---|---|---|
committer | Ulrich Drepper <drepper@gmail.com> | 2011-12-10 11:53:44 -0500 |
commit | f039c043071f2f55943d052fa7d4ad5f1a67db09 (patch) | |
tree | 2c64a4951dd64770b17439dee64a79697eb09bd3 | |
parent | 850fb039cec802072f70ed9763927881bbbf639c (diff) | |
download | glibc-f039c043071f2f55943d052fa7d4ad5f1a67db09.tar glibc-f039c043071f2f55943d052fa7d4ad5f1a67db09.tar.gz glibc-f039c043071f2f55943d052fa7d4ad5f1a67db09.tar.bz2 glibc-f039c043071f2f55943d052fa7d4ad5f1a67db09.zip |
Optimize generic ELF hash function a bit more
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | sysdeps/generic/dl-hash.h | 5 |
2 files changed, 9 insertions, 1 deletions
@@ -1,3 +1,8 @@ +2011-12-10 Ulrich Drepper <drepper@gmail.com> + + * sysdeps/generic/dl-hash.h (_dl_elf_hash): Lift one operation out of + the inner loop. + 2011-12-06 Andreas Schwab <schwab@linux-m68k.org> [BZ #13472] diff --git a/sysdeps/generic/dl-hash.h b/sysdeps/generic/dl-hash.h index 28312ca1c4..e0db00edc3 100644 --- a/sysdeps/generic/dl-hash.h +++ b/sysdeps/generic/dl-hash.h @@ -60,9 +60,12 @@ _dl_elf_hash (const char *name_arg) But the following is equivalent and a lot faster, especially on modern processors. */ - hash ^= hi; hash ^= hi >> 24; } + + /* Second part of the modified formula. This + operation can be lifted outside the loop. */ + hash &= 0x0fffffff; } } } |