X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=lib%2Flog2.c;h=2d2764e92c5f803cdea43fece8c58071b40f5b4f;hb=4390bf90103265fe6e11f4c446b78f38bdc132b3;hp=dc0a92975fa750f4edad78ae08db5d5403b4f137;hpb=03846211ba84582b133a985200502a39462dfe66;p=libucw.git diff --git a/lib/log2.c b/lib/log2.c index dc0a9297..2d2764e9 100644 --- a/lib/log2.c +++ b/lib/log2.c @@ -1,26 +1,26 @@ /* * Sherlock Library -- Binary Logarithm * - * (c) 1997 Martin Mares, + * (c) 1997 Martin Mares */ -#include +#include "lib/lib.h" -#include "lib.h" +#undef log2 int -ffs(ulg x) +log2(u32 x) { - ulg l; + uns l; if (!x) return 0; l = 0; - if (x & 0xffff0000) l += 16; - if (x & 0xff00ff00) l += 8; - if (x & 0xf0f0f0f0) l += 4; - if (x & 0xcccccccc) l += 2; + if (x & 0xffff0000) { l += 16; x &= 0xffff0000; } + if (x & 0xff00ff00) { l += 8; x &= 0xff00ff00; } + if (x & 0xf0f0f0f0) { l += 4; x &= 0xf0f0f0f0; } + if (x & 0xcccccccc) { l += 2; x &= 0xcccccccc; } if (x & 0xaaaaaaaa) l++; return l; }