Explorar o código

dynlink.c: use a faster expression in gnu_hash

With -Os, GCC uses a multiply rather than a shift and addition for 'h*33'.
Use a more efficient expression explicitely.
Alexander Monakov %!s(int64=9) %!d(string=hai) anos
pai
achega
66d45787c8
Modificáronse 1 ficheiros con 1 adicións e 1 borrados
  1. 1 1
      src/ldso/dynlink.c

+ 1 - 1
src/ldso/dynlink.c

@@ -156,7 +156,7 @@ static uint32_t gnu_hash(const char *s0)
 	const unsigned char *s = (void *)s0;
 	uint_fast32_t h = 5381;
 	for (; *s; s++)
-		h = h*33 + *s;
+		h += h*32 + *s;
 	return h;
 }