[PATCH] mi: Remove semi-arbitrary arch awareness in packed coordinate macros

Adam Jackson ajax at redhat.com
Tue Jul 22 08:05:32 PDT 2014


The majority of arches end up on the right-shift path here.  I can't
think of any arch where that'd be slower than a divide, and semantically
it makes more sense to think of this as a shift operation anyway.

Signed-off-by: Adam Jackson <ajax at redhat.com>
---
 mi/micoord.h | 20 --------------------
 1 file changed, 20 deletions(-)

diff --git a/mi/micoord.h b/mi/micoord.h
index 481e418..c83bffd 100644
--- a/mi/micoord.h
+++ b/mi/micoord.h
@@ -32,27 +32,7 @@
 
 /* Macros which handle a coordinate in a single register */
 
-/*
- * Most compilers will convert divisions by 65536 into shifts, if signed
- * shifts exist.  If your machine does arithmetic shifts and your compiler
- * can't get it right, add to this line.
- */
-
-/*
- * mips compiler - what a joke - it CSEs the 65536 constant into a reg
- * forcing as to use div instead of shift.  Let's be explicit.
- */
-
-#if defined(mips) || \
-    defined(sparc) || defined(__sparc64__) || \
-    defined(__alpha) || defined(__alpha__) || \
-    defined(__i386__) || defined(__i386) || defined(__ia64__) || \
-    defined(__s390x__) || defined(__s390__) || \
-    defined(__amd64__) || defined(amd64) || defined(__amd64)
 #define GetHighWord(x) (((int) (x)) >> 16)
-#else
-#define GetHighWord(x) (((int) (x)) / 65536)
-#endif
 
 #if IMAGE_BYTE_ORDER == MSBFirst
 #define intToCoord(i,x,y)   (((x) = GetHighWord(i)), ((y) = (int) ((short) (i))))
-- 
1.9.3



More information about the xorg-devel mailing list