From: José Fonseca Date: Wed, 14 Jul 2010 13:00:20 +0000 (+0100) Subject: gallium: Add a macro for memory barriers. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=c6c62164c369eefe1cac06190a87050977c376c1;p=mesa.git gallium: Add a macro for memory barriers. --- diff --git a/src/gallium/include/pipe/p_compiler.h b/src/gallium/include/pipe/p_compiler.h index a14486a5fb5..619a62f8f14 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. *