From: Behdad Esfahbod Date: Sun, 28 Dec 2008 09:26:26 +0000 (-0500) Subject: Use __builtin_popcount() when available (bug #17592) X-Git-Tag: 2.7.0~153 X-Git-Url: https://git.wh0rd.org/?a=commitdiff_plain;h=350dc5f35091e7e5635a6cf239e4cad56e992d01;p=fontconfig.git Use __builtin_popcount() when available (bug #17592) --- diff --git a/src/fccharset.c b/src/fccharset.c index 98ced27..1891f08 100644 --- a/src/fccharset.c +++ b/src/fccharset.c @@ -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