From c6c62164c369eefe1cac06190a87050977c376c1 Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Wed, 14 Jul 2010 14:00:20 +0100 Subject: gallium: Add a macro for memory barriers. --- src/gallium/include/pipe/p_compiler.h | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'src/gallium/include/pipe') diff --git a/src/gallium/include/pipe/p_compiler.h b/src/gallium/include/pipe/p_compiler.h index a14486a5fb..619a62f8f1 100644 --- a/src/gallium/include/pipe/p_compiler.h +++ b/src/gallium/include/pipe/p_compiler.h @@ -184,6 +184,25 @@ typedef unsigned char boolean; #endif + +#if defined(__GNUC__) + +#define PIPE_READ_WRITE_BARRIER() __asm__("":::"memory") + +#elif defined(_MSC_VER) + +void _ReadWriteBarrier(void); +#pragma intrinsic(_ReadWriteBarrier) +#define PIPE_READ_WRITE_BARRIER() _ReadWriteBarrier() + +#else + +#warning "Unsupported compiler" +#define PIPE_READ_WRITE_BARRIER() /* */ + +#endif + + /* You should use these macros to mark if blocks where the if condition * is either likely to be true, or unlikely to be true. * -- cgit v1.2.3