From f26c366e9ba6dda24a080f7d0958f4915b584850 Mon Sep 17 00:00:00 2001
From: marco <marco@freepascal.org>
Date: Sat, 10 Apr 2021 10:56:47 +0000
Subject: [PATCH]  * use popcnt instead of countbits.  * change countbits to
 popcnt in case it is used by others.

suggestion by Bi0t1n, mantis 0038728

git-svn-id: trunk@49161 -
---
 packages/fcl-image/src/fpreadbmp.pp | 11 ++---------
 1 file changed, 2 insertions(+), 9 deletions(-)

diff --git a/packages/fcl-image/src/fpreadbmp.pp b/packages/fcl-image/src/fpreadbmp.pp
index 65ac9c3a8a..f566af28d5 100644
--- a/packages/fcl-image/src/fpreadbmp.pp
+++ b/packages/fcl-image/src/fpreadbmp.pp
@@ -124,15 +124,8 @@ end;
 
 { Counts how many bits are set }
 function TFPReaderBMP.CountBits(Value : byte) : shortint;
-var i,bits : shortint;
 begin
-  bits:=0;
-  for i:=0 to 7 do
-  begin
-    if (value mod 2)<>0 then inc(bits);
-    value:=value shr 1;
-  end;
-  Result:=bits;
+   Result:=PopCnt(Value);
 end;
 
 { If compression is bi_bitfields, there could be arbitrary masks for colors.
@@ -156,7 +149,7 @@ begin
     inc(tmp);
     Mask:= Mask shr 1;
   end;
-  tmp:=tmp-(8-CountBits(Mask and $FF));
+  tmp:=tmp-(8-popcnt(Mask and $FF));
   Result:=tmp;
 end;