static
int hash_3(int hi, int c)
{
return (hi + (c << 4) + (c >> 4)) * 11;
}
gcc-3.2.1 -O2 -march=pentium
hash_3:
pushl %ebp
movl %esp, %ebp
movl 12(%ebp), %eax
movl 8(%ebp), %ecx
movl %eax, %edx
popl %ebp
sall $4, %edx
sarl $4, %eax
addl %ecx, %edx
addl %eax, %edx
leal (%edx,%edx,4), %eax
leal (%edx,%eax,2), %eax
ret
It is not guaranteed to be this way on all architectures, of course.
But still - no multiplications.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/