Messages in this thread | | | Date | Sun, 14 Feb 2010 10:36:48 -0800 | From | "H. Peter Anvin" <> | Subject | Re: [PATCH 2/5] bitops: compile time optimization for hweight_long(CONSTANT) |
| |
On 02/14/2010 03:24 AM, Borislav Petkov wrote: > > __const_hweightN - for at compile time known constants as arguments > __arch_hweightN - arch possibly has an optimized hweight version > __sw_hweightN - fall back when nothing else is there, aka the functions in > lib/hweight.c > > Now, in the x86 case, when the compiler can't know that the argument is > a constant, we call the __arch_hweightN versions. The alternative does > call the __sw_hweightN version in case the CPU doesn't support popcnt. > In this case, we need to build __sw_hweightN with -fcall-saved* for gcc > to be able to take care of the regs clobbered ny __sw_hweightN. > > So, if I understand you correctly, your suggestion might work, we > simply need to rename the lib/hweight.c versions to __sw_hweightN > and have <asm-generic/bitops/arch_hweight.h> have __arch_hweightN -> > __sw_hweightN wrappers in the default case, all arches which have an > optimized version will provide it in their respective bitops header... >
I'm not entirely sure what you're asking; if what you're asking what to name an x86-specific fallback function, it presumably should be __arch_sw_hweightN (i.e. __arch prefix with a modifier.)
-hpa
-- H. Peter Anvin, Intel Open Source Technology Center I work for Intel. I don't speak on their behalf.
| |