tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Importing Flash and NAND subsystem for NetBSD



On Sun, Feb 13, 2011 at 02:11:30PM -0800, Matt Thomas wrote:
> 
> On Feb 13, 2011, at 12:10 PM, Joerg Sonnenberger wrote:
> 
> > On Sun, Feb 13, 2011 at 10:44:45AM -0800, Matt Thomas wrote:
> >> CountBitsInByte should be replaced by __builtin_popcount so that
> >> machines with a popcount instruction can use it.
> > 
> > Which ones? There is no assembler version of popcount at the moment.
> > SPARC64 doesn't use it for ffs(), the AMD64 one has to be detected via
> > CPUID. The libgcc version is pretty bad. But code can use the popcount
> > family...
> 
> popcnt != clz 

I didn't say they are the same. But clz can be implemented using
popcount.

> alpha ev6
> i386 has a sse2 popcnt
> power5 has a popcntb
> 
> sparcv9 has one but none of the UltraSparc implement it.
> 
> Also, use a count-leading instruction might be useful with
> a faster popcount.

There is no implementation in src/common for either of this. I have the
code for i386/amd64 on my disk, but it would require adding another
library for little gain.

Joerg


Home | Main Index | Thread Index | Old Index