xserver: Branch 'master' - 6 commits

Matt Turner mattst88 at kemper.freedesktop.org
Mon Aug 31 12:54:08 PDT 2009


 hw/xfree86/common/compiler.h |  100 +++++++++++++++----------------------------
 1 file changed, 37 insertions(+), 63 deletions(-)

New commits:
commit 628b863bcc6a2a14fd3c0e6c2be4394833cc314c
Author: Matt Turner <mattst88 at gmail.com>
Date:   Mon Aug 31 15:53:41 2009 -0400

    Remove unused arm_flush_cache function
    
    Signed-off-by: Matt Turner <mattst88 at gmail.com>

diff --git a/hw/xfree86/common/compiler.h b/hw/xfree86/common/compiler.h
index d5ce43c..b94e2b2 100644
--- a/hw/xfree86/common/compiler.h
+++ b/hw/xfree86/common/compiler.h
@@ -1333,16 +1333,6 @@ xf_outl(unsigned short port, unsigned int val)
 #define outw xf_outw
 #define outl xf_outl
 
-#define arm_flush_cache(addr)						\
-do {									\
-  register unsigned long _beg __asm ("a1") = (unsigned long) (addr);	\
-  register unsigned long _end __asm ("a2") = (unsigned long) (addr) + 4;\
-  register unsigned long _flg __asm ("a3") = 0;				\
-  __asm __volatile ("swi 0x9f0002		@ sys_cacheflush"	\
-    : "=r" (_beg)							\
-    : "0" (_beg), "r" (_end), "r" (_flg));				\
-} while (0)
-
 #   else /* ix86 */
 
 #    define ldq_u(p)	(*((unsigned long  *)(p)))
commit a544139196ac7f5bc89bc642c6c5c0ea1b0bb60e
Author: Matt Turner <mattst88 at gmail.com>
Date:   Mon Aug 31 15:53:19 2009 -0400

    Remove unused ppc_flush_icache function
    
    Signed-off-by: Matt Turner <mattst88 at gmail.com>

diff --git a/hw/xfree86/common/compiler.h b/hw/xfree86/common/compiler.h
index 3b648df..d5ce43c 100644
--- a/hw/xfree86/common/compiler.h
+++ b/hw/xfree86/common/compiler.h
@@ -1635,17 +1635,6 @@ extern _X_EXPORT void xf86SlowBCopyToBus(unsigned char *, unsigned char *, int);
 #  define MMIO_MOVE32(base, offset, val) \
        xf86WriteMmio32Be(base, offset, (CARD32)(val))
 
-static __inline__ void ppc_flush_icache(char *addr)
-{
-	__asm__ volatile (
-		"dcbf 0,%0;" 
-		"sync;" 
-		"icbi 0,%0;" 
-		"sync;" 
-		"isync;" 
-		: : "r"(addr) : "memory");
-}
-
 # elif defined(__sparc__) || defined(sparc) || defined(__sparc)
  /*
   * Like powerpc, we provide byteswapping and no byteswapping functions
commit 52aa0495218dc7821a23b045b2c74b2a66e34616
Author: Matt Turner <mattst88 at gmail.com>
Date:   Mon Aug 31 15:52:39 2009 -0400

    Replace 8 nops with proper sync instruction on mips
    
    Cc: Ralf Baechle <ralf at linux-mips.org>
    Acked-by: David Daney <ddaney at caviumnetworks.com>
    Signed-off-by: Matt Turner <mattst88 at gmail.com>

diff --git a/hw/xfree86/common/compiler.h b/hw/xfree86/common/compiler.h
index 114c812..3b648df 100644
--- a/hw/xfree86/common/compiler.h
+++ b/hw/xfree86/common/compiler.h
@@ -165,16 +165,17 @@ extern unsigned short ldw_brx(volatile unsigned char *, int);
 #    endif
 
 #   elif defined __mips__
-#    define mem_barrier() \
-        __asm__ __volatile__(                                   \
-                "# prevent instructions being moved around\n\t" \
-                ".set\tnoreorder\n\t"                           \
-                "# 8 nops to fool the R4400 pipeline\n\t"       \
-                "nop;nop;nop;nop;nop;nop;nop;nop\n\t"           \
-                ".set\treorder"                                 \
-                : /* no output */                               \
-                : /* no input */                                \
-                : "memory")
+     /* Note: sync instruction requires MIPS II instruction set */
+#    define mem_barrier()		\
+	__asm__ __volatile__(		\
+		".set   push\n\t"	\
+		".set   noreorder\n\t"	\
+		".set   mips2\n\t"	\
+		"sync\n\t"		\
+		".set   pop"		\
+		: /* no output */	\
+		: /* no input */	\
+		: "memory")
 #    define write_mem_barrier() mem_barrier()
 
 #   elif defined __powerpc__
commit 563fa1c5d762173cd6fb78f9e33cb960ef3153bb
Author: Matt Turner <mattst88 at gmail.com>
Date:   Mon Aug 31 15:52:10 2009 -0400

    Use sfence and mfence instructions on amd64
    
    Signed-off-by: Matt Turner <mattst88 at gmail.com>

diff --git a/hw/xfree86/common/compiler.h b/hw/xfree86/common/compiler.h
index bb3e935..114c812 100644
--- a/hw/xfree86/common/compiler.h
+++ b/hw/xfree86/common/compiler.h
@@ -150,10 +150,8 @@ extern unsigned short ldw_brx(volatile unsigned char *, int);
 
 #   elif defined __amd64__
 
-#    define mem_barrier() \
-       __asm__ __volatile__ ("lock; addl $0,0(%%rsp)" : : : "memory")
-#    define write_mem_barrier() \
-       __asm__ __volatile__ ("" : : : "memory")
+#    define mem_barrier() __asm__ __volatile__ ("mfence" : : : "memory")
+#    define write_mem_barrier() __asm__ __volatile__ ("sfence" : : : "memory")
 
 #   elif defined __ia64__
 
commit 430c4af0d6e2cad03ca5f49ec6e87f3717d0d9e2
Author: Matt Turner <mattst88 at gmail.com>
Date:   Mon Aug 31 15:51:41 2009 -0400

    Add x86 barrier macros
    
    Signed-off-by: Matt Turner <mattst88 at gmail.com>

diff --git a/hw/xfree86/common/compiler.h b/hw/xfree86/common/compiler.h
index d1467eb..bb3e935 100644
--- a/hw/xfree86/common/compiler.h
+++ b/hw/xfree86/common/compiler.h
@@ -129,7 +129,21 @@ extern unsigned short ldw_brx(volatile unsigned char *, int);
 
 # ifndef NO_INLINE
 #  ifdef __GNUC__
-#   ifdef __alpha__
+#   ifdef __i386__
+
+#    ifdef __SSE__
+#     define write_mem_barrier() __asm__ __volatile__ ("sfence" : : : "memory")
+#    else
+#     define write_mem_barrier() __asm__ __volatile__ ("lock; addl $0,0(%%esp)" : : : "memory")
+#    endif
+
+#    ifdef __SSE2__
+#     define mem_barrier() __asm__ __volatile__ ("mfence" : : : "memory")
+#    else
+#     define mem_barrier() __asm__ __volatile__ ("lock; addl $0,0(%%esp)" : : : "memory")
+#    endif
+
+#   elif defined __alpha__
 
 #    define mem_barrier() __asm__ __volatile__ ("mb" : : : "memory")
 #    define write_mem_barrier() __asm__ __volatile__ ("wmb" : : : "memory")
commit 0d87f77a3ff4b22729220b7edcb98c6f06d0787c
Author: Matt Turner <mattst88 at gmail.com>
Date:   Mon Aug 31 15:51:05 2009 -0400

    define barrier macros as nops if not otherwise defined
    
    Signed-off-by: Matt Turner <mattst88 at gmail.com>

diff --git a/hw/xfree86/common/compiler.h b/hw/xfree86/common/compiler.h
index 5395c47..d1467eb 100644
--- a/hw/xfree86/common/compiler.h
+++ b/hw/xfree86/common/compiler.h
@@ -141,16 +141,6 @@ extern unsigned short ldw_brx(volatile unsigned char *, int);
 #    define write_mem_barrier() \
        __asm__ __volatile__ ("" : : : "memory")
 
-#   elif defined __arm__
-
-#    define mem_barrier()   /* NOP */
-#    define write_mem_barrier()   /* NOP */
-
-#   elif defined __arm32__
-
-#    define mem_barrier()	/* NOP */
-#    define write_mem_barrier()	/* NOP */
-
 #   elif defined __ia64__
 
 #    ifndef __INTEL_COMPILER
@@ -163,8 +153,7 @@ extern unsigned short ldw_brx(volatile unsigned char *, int);
 #    endif
 
 #   elif defined __mips__
-#    ifdef linux
-#     define mem_barrier() \
+#    define mem_barrier() \
         __asm__ __volatile__(                                   \
                 "# prevent instructions being moved around\n\t" \
                 ".set\tnoreorder\n\t"                           \
@@ -174,11 +163,7 @@ extern unsigned short ldw_brx(volatile unsigned char *, int);
                 : /* no output */                               \
                 : /* no input */                                \
                 : "memory")
-#     define write_mem_barrier() mem_barrier()
-
-#    else /* !linux */
-#     define mem_barrier()   /* NOP */
-#    endif
+#    define write_mem_barrier() mem_barrier()
 
 #   elif defined __powerpc__
 
@@ -200,21 +185,18 @@ extern unsigned short ldw_brx(volatile unsigned char *, int);
 #    define barrier() __asm__ __volatile__ (".word 0x8143e00a" : : : "memory")
 #    define mem_barrier()         /* XXX: nop for now */
 #    define write_mem_barrier()   /* XXX: nop for now */
-
-#   else /* ix86 */
-
-#    define mem_barrier()   /* NOP */
-#    define write_mem_barrier()   /* NOP */
-
 #   endif
-#  else
-
-#   define mem_barrier()   /* NOP */
-#   define write_mem_barrier()   /* NOP */
-
 #  endif /* __GNUC__ */
 # endif /* NO_INLINE */
 
+# ifndef mem_barrier
+#  define mem_barrier() /* NOP */
+# endif
+
+# ifndef write_mem_barrier
+#  define write_mem_barrier() /* NOP */
+# endif
+
 # ifndef NO_INLINE
 #  ifdef __GNUC__
 #   if (defined(linux) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)) && (defined(__alpha__))


More information about the xorg-commit mailing list