projects
/
gnulib.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
ffsl, ffsll: Optimize for GCC.
[gnulib.git]
/
lib
/
ffsl.h
diff --git
a/lib/ffsl.h
b/lib/ffsl.h
index
eb7fead
..
9f20912
100644
(file)
--- a/
lib/ffsl.h
+++ b/
lib/ffsl.h
@@
-31,6
+31,9
@@
int
FUNC (TYPE i)
{
int
FUNC (TYPE i)
{
+#if (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) && defined GCC_BUILTIN
+ return GCC_BUILTIN (i);
+#else
int result = 0;
unsigned TYPE j = i;
int result = 0;
unsigned TYPE j = i;
@@
-44,4
+47,5
@@
FUNC (TYPE i)
j >>= CHAR_BIT * sizeof (unsigned int);
result += CHAR_BIT * sizeof (unsigned int);
}
j >>= CHAR_BIT * sizeof (unsigned int);
result += CHAR_BIT * sizeof (unsigned int);
}
+#endif
}
}