Browse Source

Move calculation of rem within if (unlikely statement

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
SIgned-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
Carmelo Amoroso 16 years ago
parent
commit
459994b032
1 changed files with 5 additions and 3 deletions
  1. 5 3
      ldso/ldso/dl-hash.c

+ 5 - 3
ldso/ldso/dl-hash.c

@@ -204,12 +204,14 @@ _dl_lookup_gnu_hash(struct elf_resolve *tpnt, ElfW(Sym) *symtab, unsigned long h
 
 	unsigned int hashbit1 = hash & (__ELF_NATIVE_CLASS - 1);
 	unsigned int hashbit2 = ((hash >> tpnt->l_gnu_shift) & (__ELF_NATIVE_CLASS - 1));
-	unsigned long rem;
-	do_rem (rem, hash, tpnt->nbucket);
 	_dl_assert (bitmask != NULL);
 
 	if (unlikely((bitmask_word >> hashbit1) & (bitmask_word >> hashbit2) & 1)) {
-		Elf32_Word bucket = tpnt->l_gnu_buckets[rem];
+		unsigned long rem;
+		Elf32_Word bucket;
+
+		do_rem (rem, hash, tpnt->nbucket);
+		bucket = tpnt->l_gnu_buckets[rem];
 
 		if (bucket != 0) {
 			const Elf32_Word *hasharr = &tpnt->l_gnu_chain_zero[bucket];