aboutsummaryrefslogtreecommitdiff
path: root/sysdeps
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@gmail.com>2011-12-10 11:53:44 -0500
committerUlrich Drepper <drepper@gmail.com>2011-12-10 11:53:44 -0500
commitf039c043071f2f55943d052fa7d4ad5f1a67db09 (patch)
tree2c64a4951dd64770b17439dee64a79697eb09bd3 /sysdeps
parent850fb039cec802072f70ed9763927881bbbf639c (diff)
downloadglibc-f039c043071f2f55943d052fa7d4ad5f1a67db09.tar
glibc-f039c043071f2f55943d052fa7d4ad5f1a67db09.tar.gz
glibc-f039c043071f2f55943d052fa7d4ad5f1a67db09.tar.bz2
glibc-f039c043071f2f55943d052fa7d4ad5f1a67db09.zip
Optimize generic ELF hash function a bit more
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/generic/dl-hash.h5
1 files changed, 4 insertions, 1 deletions
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;
}
}
}