From a5cf90922eb4752fcfe2de17ac7c458b26b7d430 Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann Date: Mon, 3 May 2010 11:32:35 +0200 Subject: [PATCH] Add C version of find_msb() This patch allows people to build the spice-client on any 32bit/64bit architecture. by Bryan Stillwell --- common/gl_utils.h | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/common/gl_utils.h b/common/gl_utils.h index eeb9f02e..eecff269 100644 --- a/common/gl_utils.h +++ b/common/gl_utils.h @@ -60,7 +60,7 @@ found: return r + 1; } -#else +#elif defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)) static inline int find_msb(unsigned int val) { int ret; @@ -73,6 +73,25 @@ static inline int find_msb(unsigned int val) return ret + 1; } +#else +static inline int find_msb(unsigned int val) +{ + signed char index = 31; + + if(val == 0) { + return 0; + } + + do { + if(val & 0x80000000) { + break; + } + val <<= 1; + } while(--index >= 0); + + return index+1; +} + #endif static inline int gl_get_to_power_two(unsigned int val)