|
#ifdef CPU_32
x = x - ((x >> 1) & 0x55555555);
x = (x & 0x33333333) + ((x >> 2) & 0x33333333);
x = (x + (x >> 4)) & 0x0f0f0f0f;
x = x + (x >> 8);
x = x + (x >> 16);
x = x & 0x0000003f;
#else
#ifdef CPU_16
x = (x & 0x5555) + ((x & 0xAAAA) >> 1);
x = (x & 0x3333) + ((x & 0xCCCC) >> 2);
x = (x & 0x0F0F) + ((x & 0xF0F0) >> 4);
x = (x & 0x00FF) + ((x & 0xFF00) >> 8);
#else
#ifdef CPU_SM_FAVORITE
asm("BCNT ACx, ACy, TC1, Tx");
asm("BCNT ACx, ACy, TC2, Tx");
#else
for (i = 0; i < 8; i++) {
cnt += (x & 1);
x >>= 1;
}
#endif
#endif
#endif
E-mail: info@telesys.ru