From: michal Date: Wed, 29 Aug 2007 20:40:18 +0000 (+0100) Subject: Fix ffs(). X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=5c337508feedfa35ba3f534bf212f08265db2022;p=mesa.git Fix ffs(). --- diff --git a/src/mesa/pipe/p_util.h b/src/mesa/pipe/p_util.h old mode 100644 new mode 100755 index 3eff3328c78..436bda21393 --- a/src/mesa/pipe/p_util.h +++ b/src/mesa/pipe/p_util.h @@ -39,10 +39,10 @@ #define Elements(x) sizeof(x)/sizeof(*(x)) /** - * Return pointer aligned to next multiple of 16 bytes. + * Return a pointer aligned to next multiple of 16 bytes. */ static INLINE void * -align16(void *unaligned) +align16( void *unaligned ) { union { void *p; @@ -59,7 +59,12 @@ static INLINE unsigned ffs( unsigned u ) { unsigned i; + if( u == 0 ) { + return 0; + } + __asm bsf eax, [u] + __asm inc eax __asm mov [i], eax return i;