Przeglądaj źródła

ffsll fallback

master
Martin Dørum 3 lat temu
rodzic
commit
24d4d7c473
1 zmienionych plików z 12 dodań i 1 usunięć
  1. 12
    1
      src/bitmap.c

+ 12
- 1
src/bitmap.c Wyświetl plik

@@ -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


Ładowanie…
Anuluj
Zapisz