summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBehdad Esfahbod <behdad@google.com>2014-07-10 22:02:29 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2014-07-10 21:09:47 +0000
commita8e7eb6316e7d5169f0800e8f6e5af6508d97b72 (patch)
tree8d28e1c94e282b57a7df8f3064748dbd1b38825e
parentfbe7ebf529b3d429ae9f153b7df3529554bfc64d (diff)
parent329ae0639e332fa0ca85049f738776083b6dbafc (diff)
downloadandroid_frameworks_minikin-a8e7eb6316e7d5169f0800e8f6e5af6508d97b72.tar.gz
android_frameworks_minikin-a8e7eb6316e7d5169f0800e8f6e5af6508d97b72.tar.bz2
android_frameworks_minikin-a8e7eb6316e7d5169f0800e8f6e5af6508d97b72.zip
Merge "Use __builtin_clzl if element is long"
-rw-r--r--libs/minikin/SparseBitSet.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/libs/minikin/SparseBitSet.cpp b/libs/minikin/SparseBitSet.cpp
index e0b3c1d..7acb7ba 100644
--- a/libs/minikin/SparseBitSet.cpp
+++ b/libs/minikin/SparseBitSet.cpp
@@ -105,9 +105,9 @@ void SparseBitSet::initFromRanges(const uint32_t* ranges, size_t nRanges) {
}
}
-// Note: this implementation depends on GCC builtin, and also assumes 32-bit elements.
int SparseBitSet::CountLeadingZeros(element x) {
- return __builtin_clz(x);
+ // Note: GCC / clang builtin
+ return sizeof(element) <= sizeof(int) ? __builtin_clz(x) : __builtin_clzl(x);
}
uint32_t SparseBitSet::nextSetBit(uint32_t fromIndex) const {