remove Popcount_word()

This commit is contained in:
Thomas Bernard 2018-12-10 12:33:11 +01:00
parent 4c1c2f34ad
commit 34c9962e4d
No known key found for this signature in database
GPG Key ID: 0FF11B67A5C0863C
3 changed files with 4 additions and 29 deletions

View File

@ -839,31 +839,9 @@ double Fround(double n, unsigned d)
return floor(n * exp + 0.5) / exp; return floor(n * exp + 0.5) / exp;
} }
/// Count number of bits in a word (16bit).
/// Based on Wikipedia article for Hamming_weight, it's optimized
/// for cases when zeroes are more frequent.
int Popcount_word(word x)
{
word count;
for (count=0; x; count++)
x &= x-1;
return count;
}
/// Count number of bits in a dword (32bit).
/// Based on Wikipedia article for Hamming_weight, it's optimized
/// for cases when zeroes are more frequent.
int Popcount_dword(dword x)
{
dword count;
for (count=0; x; count++)
x &= x-1;
return count;
}
// Fonction retournant le libellé d'une mode (ex: " 320x200") // Fonction retournant le libellé d'une mode (ex: " 320x200")
char * Mode_label(int mode) const char * Mode_label(int mode)
{ {
static char str[24]; static char str[24];
if (! Video_mode[mode].Fullscreen) if (! Video_mode[mode].Fullscreen)

View File

@ -151,12 +151,9 @@ double Fround(double n, unsigned d);
int Min(int a,int b); int Min(int a,int b);
int Max(int a,int b); int Max(int a,int b);
char* Mode_label(int mode); const char* Mode_label(int mode);
int Convert_videomode_arg(const char *argument); int Convert_videomode_arg(const char *argument);
int Popcount_word(word x);
int Popcount_dword(dword x);
/// Return a number of milliseconds /// Return a number of milliseconds
dword GFX2_GetTicks(void); dword GFX2_GetTicks(void);

View File

@ -168,7 +168,7 @@ int C64_FLI(T_IO_Context * context, byte *bitmap, byte *screen_ram, byte *color_
memset(usage,0,16*sizeof(dword)); memset(usage,0,16*sizeof(dword));
for (col=0;col<40;col++) for (col=0;col<40;col++)
{ {
used_colors_count[row][col]=Popcount_word(used_colors[row][col]); used_colors_count[row][col] = count_set_bits(used_colors[row][col]);
// Count which colors are used 3 times // Count which colors are used 3 times
if (used_colors_count[row][col]==3) if (used_colors_count[row][col]==3)
{ {
@ -239,7 +239,7 @@ int C64_FLI(T_IO_Context * context, byte *bitmap, byte *screen_ram, byte *color_
} }
} }
} }
if (filter != 0 && Popcount_word(filter) == 1) if (filter != 0 && count_set_bits(filter) == 1)
{ {
// Only one color matched all needs: Use it. // Only one color matched all needs: Use it.
i=1; i=1;