On 07/14/2012 03:34 PM, Blue Swirl wrote: > bitops.h uses inconsistently 'unsigned long' and 'int' for bit numbers. > > Unify to 'unsigned long' because it generates better code on x86_64. > Adjust asserts accordingly. >
Actually, plain unsigned generates the best code. unsigned longs require an extra byte for many instructions. It also requires more stack space if spilled. Unsigned does not, but is compatible with unsigned long in case it needs to be used in pointer arithmetic (unlike signed int which needs a sign extension instruction). -- error compiling committee.c: too many arguments to function
