Minor optimization of popcount in l10nflist

This commit is contained in:
Ulrich Drepper 2011-08-11 14:07:04 -04:00
parent 89edf2e911
commit 8e999d2962
3 changed files with 18 additions and 0 deletions

View File

@ -1,5 +1,8 @@
2011-08-11 Ulrich Drepper <drepper@gmail.com>
* intl/l10nflist.c: Allow architecture-specific pop function.
* sysdeps/x86_64/l10nflist.c: New file.
* intl/l10nflist.c (_nl_make_l10nflist): Use locale-independent
classification.

View File

@ -150,6 +150,7 @@ argz_next__ (argz, argz_len, entry)
/* Return number of bits set in X. */
#ifndef ARCH_POP
static int pop PARAMS ((int x));
static inline int
@ -164,6 +165,7 @@ pop (x)
return x;
}
#endif
struct loaded_l10nfile *

View File

@ -0,0 +1,13 @@
#ifdef __POPCNT__
# include <popcntintrin.h>
static inline unsigned int
pop (unsigned int x)
{
return _mm_popcnt_u32 (x);
}
# define ARCH_POP 1
#endif
#include <intl/l10nflist.c>