From: "Alexander van Heukelum" <heukelum@fastmail.fm>
To: "Andi Kleen" <andi@firstfloor.org>
Cc: "Andi Kleen" <andi@firstfloor.org>,
"Jeremy Fitzhardinge" <jeremy@goop.org>,
"Alexander van Heukelum" <heukelum@mailshack.com>,
"Ingo Molnar" <mingo@elte.hu>,
"Thomas Gleixner" <tglx@linutronix.de>,
"H. Peter Anvin" <hpa@zytor.com>,
"LKML" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] x86: merge the simple bitops and move them to bitops.h
Date: Sat, 15 Mar 2008 18:54:10 +0100 [thread overview]
Message-ID: <1205603650.19648.1242579149@webmail.messagingengine.com> (raw)
In-Reply-To: <20080314221845.GX2522@one.firstfloor.org>
On Fri, 14 Mar 2008 23:18:45 +0100, "Andi Kleen" <andi@firstfloor.org>
said:
> > #else
> > static inline int fls64(__u64 x)
> > {
> > if (x == 0)
> > return 0;
> > return __fls(x) + 1;
>
> That would require a polymorphic macro __fls that adapts to 32bit and
> 64bit arguments. Not good C style.
Hi Andi,
It's unsigned long __fls(unsigned long)... and this is only compiled
if unsigned long is as long as u64. Seems fine to me. Moreover, it
is _exactly_ how it is done in x86_64 now. I must be missing something.
> > This is the only reason that this define exists. With another
> > name it would be fine. HWEIGHT_USE_MULTIPLIER?
>
> AFAIK it only exists because some ancient sparc chips had incredibly
> slow multipliers.
Good to know. And I realized that there is also the machines without
a hardware multiply instruction at all. So you are right. i386/x86_64
should just unconditionally set ARCH_HAS_FAST_MULTIPLIER.
> > And my feeling is that this is exactly the reason why this is
> > not a good version for a generic implementation in bitops.h. But
> > I don't care much.
>
> I bet most different approaches who might be slightly
> faster for larger bit strings would make the one bit
> case slower.
That is true, of course. But then the name of the function should
give a hint that it is optimized for short sequences.
Greetings,
Alexander
--
Alexander van Heukelum
heukelum@fastmail.fm
--
http://www.fastmail.fm - Or how I learned to stop worrying and
love email again
next prev parent reply other threads:[~2008-03-15 17:54 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-03-12 20:01 [PATCH] x86: merge the simple bitops and move them to bitops.h Alexander van Heukelum
2008-03-14 18:07 ` Jeremy Fitzhardinge
2008-03-14 19:43 ` Alexander van Heukelum
2008-03-14 19:55 ` Andi Kleen
2008-03-14 21:33 ` Alexander van Heukelum
2008-03-14 21:42 ` Andi Kleen
2008-03-14 22:01 ` Alexander van Heukelum
2008-03-14 22:18 ` Andi Kleen
2008-03-15 17:54 ` Alexander van Heukelum [this message]
2008-03-15 19:19 ` K8, EFFICEON and CORE2 support the cmovxx instructions Alexander van Heukelum
2008-03-15 20:18 ` H. Peter Anvin
2008-03-15 21:06 ` Alexander van Heukelum
2008-03-15 21:11 ` Willy Tarreau
2008-03-16 13:16 ` [PATCH] x86: K8, GEODE_LX, CRUSOE, " Alexander van Heukelum
2008-03-21 12:38 ` Ingo Molnar
2008-03-14 20:35 ` [PATCH v2] x86: merge the simple bitops and move them to bitops.h Alexander van Heukelum
2008-03-14 23:30 ` Randy Dunlap
2008-03-15 12:04 ` [PATCH v3] " Alexander van Heukelum
2008-03-21 12:35 ` Ingo Molnar
2008-03-14 21:15 ` [PATCH] " Jeremy Fitzhardinge
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1205603650.19648.1242579149@webmail.messagingengine.com \
--to=heukelum@fastmail.fm \
--cc=andi@firstfloor.org \
--cc=heukelum@mailshack.com \
--cc=hpa@zytor.com \
--cc=jeremy@goop.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=tglx@linutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.