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