Linus,

First ia64 change is sitting in a GIT repository at:

        http://www.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6.git

Please pull (and comment if anything is wrong, or could be improved ... e.g.
what's the easiest way to name the repository for you to cut&paste?)

-Tony

Diffstat:

 include/asm-ia64/bitops.h     |   21 +++++++++++++++++----
 include/asm-ia64/gcc_intrin.h |   10 +++++++---
 2 files changed, 24 insertions(+), 7 deletions(-)

Changesets:

tree 2179380ee3eb38fb393719e6ce32b15e934c4a44
parent d8470b7c13e11c18cf14a7e3180f0b00e715e4f0
author David Mosberger-Tang <[EMAIL PROTECTED]> 1114106879 -0700
committer Tony Luck <[EMAIL PROTECTED]> 1114106879 -0700

[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 <[EMAIL PROTECTED]>
Signed-off-by: Tony Luck <[EMAIL PROTECTED]>
-
To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to