From: David Mosberger-Tang Date: Thu, 21 Apr 2005 18:07:59 +0000 (-0700) Subject: [IA64] fix fls() X-Git-Tag: v2.6.12-rc4~292^2 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=821376bf15e692941f9235f13a14987009fd0b10;p=pandora-kernel.git [IA64] fix fls() The ia64-version of fls() never worked as intended (the bitnumbering was off by 1 and fls(0) was undefined). This patch fixes the problem by using a popcnt-based fls(), which on McKinley-derived cores is slightly faster than both ia64_fls() and generic_fls(). The resulting code, however, is bigger (7-8 bundles instead of about 3 bundles). Also switch ia64_popcnt() to __builtin_popcountl() for GCC v3.4 or newer since the compiler can predicate that and schedule it better. Thanks to Simon Derr and Matt Mackall for tracking down this bug. Signed-off-by: David Mosberger-Tang Signed-off-by: Tony Luck --- Reading git-diff-tree failed