Messages in this thread | | | Date | Sun, 14 Feb 2010 14:13:32 -0800 | From | "H. Peter Anvin" <> | Subject | Re: [PATCH 2/5] bitops: compile time optimization for hweight_long(CONSTANT) |
| |
On 02/14/2010 12:28 PM, Borislav Petkov wrote: > > Hmm, basically, what PeterZ suggested is that I drop one indirection > under __arch_hweightN, which would make x86-specific fallback functions > superfluous. > > IOW, what we have so far is: > > #define hweightN(w) (__builtin_constant_p(w) ? __const_hweightN(w) : __arch_hweightN(w)) > > and have <asm-generic/bitops/arch_hweight.h> provide __arch_hweightN() > -> __sw_hweightN wrappers per default, where the __sw_hweightN are the > lib/hweight.c generic versions. > > On architectures/CPUs which provide popcnt in > hardware, we create __arch_hweightN implementations in > <arch/[:ARCH_NAME:]/include/asm/bitops.h> overriding the > <asm-generic/bitops/arch_hweight.h> versions by simply not including > that last header. > > Is that agreeable? >
That makes sense... after all, that's a pretty typical use of asm-generic.
-hpa
-- H. Peter Anvin, Intel Open Source Technology Center I work for Intel. I don't speak on their behalf.
| |