| From 32e98e8ef06f0bb6ad55f9fb5858be77c03367b0 Mon Sep 17 00:00:00 2001 |
| From: Matt Turner <mattst88@gmail.com> |
| Date: Mon, 2 Feb 2015 17:26:49 -0800 |
| Subject: [PATCH] gallium/util: Don't use __builtin_clrsb in util_last_bit(). |
| |
| Unclear circumstances lead to undefined symbols on x86. |
| |
| Bugzilla: https://bugs.gentoo.org/show_bug.cgi?id=536916 |
| Cc: mesa-stable@lists.freedesktop.org |
| Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu> |
| --- |
| src/gallium/auxiliary/util/u_math.h | 4 ---- |
| 1 file changed, 4 deletions(-) |
| |
| diff --git a/src/gallium/auxiliary/util/u_math.h b/src/gallium/auxiliary/util/u_math.h |
| index 19c7343..ca6d0f1 100644 |
| --- a/src/gallium/auxiliary/util/u_math.h |
| +++ b/src/gallium/auxiliary/util/u_math.h |
| @@ -561,14 +561,10 @@ util_last_bit(unsigned u) |
| static INLINE unsigned |
| util_last_bit_signed(int i) |
| { |
| -#if defined(__GNUC__) && ((__GNUC__ * 100 + __GNUC_MINOR__) >= 407) && !defined(__INTEL_COMPILER) |
| - return 31 - __builtin_clrsb(i); |
| -#else |
| if (i >= 0) |
| return util_last_bit(i); |
| else |
| return util_last_bit(~(unsigned)i); |
| -#endif |
| } |
| |
| /* Destructively loop over all of the bits in a mask as in: |
| -- |
| 2.0.4 |
| |