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 Feb 13, 2011, at 2:20 PM, Joerg Sonnenberger wrote:

> 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.

Another library?

popcount{si,di}2 already exist as part of libgcc.  



Home | Main Index | Thread Index | Old Index