misc: Add count_lead_ones() function, useful for UTF-8 handling.

This commit is contained in:
Paul Sokolovsky 2014-06-15 23:13:41 +03:00
parent 63143c94ce
commit ce81312d8a

View File

@ -166,4 +166,17 @@ int DEBUG_printf(const char *fmt, ...);
extern uint mp_verbose_flag;
// This is useful for unicode handling. Some CPU archs has
// special instructions for efficient implentation of this
// function (e.g. CLZ on ARM).
#ifndef count_lead_ones
static inline uint count_lead_ones(byte val) {
uint c = 0;
for (byte mask = 0x80; val & mask; mask >>= 1) {
c++;
}
return c;
}
#endif
#endif // _INCLUDED_MINILIB_H