diff options
author | Brian Paul <[email protected]> | 2012-01-12 07:30:48 -0700 |
---|---|---|
committer | Brian Paul <[email protected]> | 2012-01-12 07:30:58 -0700 |
commit | 9a548c27aa704236cc1d8a5d4ebf68cea9c5c99c (patch) | |
tree | cdb18d78dd7dc3724d183361618212f274acb675 /src/mesa/main/imports.h | |
parent | 87118d84ff11c040f677c7506afb813def1b9ff9 (diff) |
mesa: remove _mesa_ffs(), implement ffs() for non-GNU platforms
Call ffs() and ffsll() everywhere. Define our own ffs(), ffsll()
functions when the platform doesn't have them.
v2: remove #ifdef _WIN32, __IBMC__, __IBMCPP_ tests inside ffs()
implementation. The #else clause was recursive.
Reviewed-by: Kenneth Graunke <[email protected]>
Tested-by: Alexander von Gluck <[email protected]>
Diffstat (limited to 'src/mesa/main/imports.h')
-rw-r--r-- | src/mesa/main/imports.h | 21 |
1 files changed, 8 insertions, 13 deletions
diff --git a/src/mesa/main/imports.h b/src/mesa/main/imports.h index b7e87439f4c..bcf125ada76 100644 --- a/src/mesa/main/imports.h +++ b/src/mesa/main/imports.h @@ -573,10 +573,15 @@ _mesa_init_sqrt_table(void); #define ffsll __builtin_ffsll #endif -#define _mesa_ffs(i) ffs(i) -#define _mesa_ffsll(i) ffsll(i) +#else + +extern int ffs(int i); +extern int ffsll(long long int i); + +#endif /*__ GNUC__ */ -#if ((__GNUC__ * 100 + __GNUC_MINOR__) >= 304) /* gcc 3.4 or later */ + +#if defined(__GNUC__) && ((__GNUC__ * 100 + __GNUC_MINOR__) >= 304) /* gcc 3.4 or later */ #define _mesa_bitcount(i) __builtin_popcount(i) #define _mesa_bitcount_64(i) __builtin_popcountll(i) #else @@ -586,16 +591,6 @@ extern unsigned int _mesa_bitcount_64(uint64_t n); #endif -#else -extern int -_mesa_ffs(int32_t i); - -extern int -_mesa_ffsll(int64_t i); - -extern unsigned int -_mesa_bitcount(unsigned int n); -#endif extern GLhalfARB _mesa_float_to_half(float f); |