xf86-video-ati: Branch 'master'

Michel Dänzer daenzer at kemper.freedesktop.org
Mon Dec 5 02:17:31 UTC 2016


 src/radeon.h |   13 +------------
 1 file changed, 1 insertion(+), 12 deletions(-)

New commits:
commit a89c0bced423ce3e09f66edafc35642a7cc03b2f
Author: Jochen Rollwagen <joro-2013 at t-online.de>
Date:   Fri Dec 2 10:56:39 2016 +0100

    Calculate log base 2 in radeon.h based on clz for all platforms
    
    This commit replaces the inline assembler code (for x86 platforms) and
    loop (for non-x86 platforms) in RADEONLog2 with a one-liner version
    based on clz (count leading zeroes).
    
    Reviewed-by: Michel Dänzer <michel.daenzer at amd.com>

diff --git a/src/radeon.h b/src/radeon.h
index 5797bed..039a620 100644
--- a/src/radeon.h
+++ b/src/radeon.h
@@ -935,18 +935,7 @@ enum {
 static __inline__ int
 RADEONLog2(int val)
 {
-	int bits;
-#if (defined __i386__ || defined __x86_64__) && (defined __GNUC__)
-	__asm volatile("bsrl	%1, %0"
-		: "=r" (bits)
-		: "c" (val)
-	);
-	return bits;
-#else
-	for (bits = 0; val != 0; val >>= 1, ++bits)
-		;
-	return bits - 1;
-#endif
+	return 31 - __builtin_clz(val);
 }
 
 #define RADEON_TILING_MASK				0xff


More information about the xorg-commit mailing list