]> git.wh0rd.org - fontconfig.git/commitdiff
Use __builtin_popcount() when available (bug #17592)
authorBehdad Esfahbod <behdad@behdad.org>
Sun, 28 Dec 2008 09:26:26 +0000 (04:26 -0500)
committerBehdad Esfahbod <behdad@behdad.org>
Sat, 14 Feb 2009 00:54:02 +0000 (16:54 -0800)
src/fccharset.c

index 98ced278703dfd7f1d3a109cc2dc6ef94dca9e7f..1891f08f01ae28b6d05b45442c4a81cceb3625c5 100644 (file)
@@ -546,10 +546,14 @@ FcCharSetHasChar (const FcCharSet *fcs, FcChar32 ucs4)
 static FcChar32
 FcCharSetPopCount (FcChar32 c1)
 {
+#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
+    return __builtin_popcount (c1);
+#else
     /* hackmem 169 */
     FcChar32   c2 = (c1 >> 1) & 033333333333;
     c2 = c1 - c2 - ((c2 >> 1) & 033333333333);
     return (((c2 + (c2 >> 3)) & 030707070707) % 077);
+#endif
 }
 
 FcChar32