Browse Source

ffsll fallback

master
Martin Dørum 3 years ago
parent
commit
24d4d7c473
1 changed files with 12 additions and 1 deletions
  1. 12
    1
      src/bitmap.c

+ 12
- 1
src/bitmap.c View File

@@ -12,12 +12,23 @@ static l2_bitmap_entry first_unset_bit(l2_bitmap_entry n) {
return ~n & (n + 1);
}

#if defined(__GLIBC__) && ( \
#if 0 && defined(__GLIBC__) && ( \
(__GLIBC__>= 2 && __GLIBC_MINOR__ >= 27) || \
_GNU_SOURCE)
#define first_set ffsll
#else
static int first_set(l2_bitmap_entry n) {
if (n == 0) {
return 0;
}

int num = 1;
while ((n & 1) == 0) {
n >>= 1;
num += 1;
}

return num;
}
#endif


Loading…
Cancel
Save