From 7134a4591c65b5c72550341b069e1eed97030048 Mon Sep 17 00:00:00 2001 From: Arnon Gilboa Date: Wed, 2 Feb 2011 11:21:11 +0200 Subject: [PATCH] define spice_mb MemoryBarrier for WIN64 __asm is not supported on _WIN64, so use macro instead required for Windows x64 guest display driver (qxldd.dll) --- spice/barrier.h | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/spice/barrier.h b/spice/barrier.h index 8c81c86..710da09 100644 --- a/spice/barrier.h +++ b/spice/barrier.h @@ -33,14 +33,23 @@ #define _H_SPICE_BARRIER #ifdef __GNUC__ + #ifdef __i386__ #define spice_mb() __asm__ __volatile__ ("lock; addl $0,0(%%esp)": : :"memory") #else //mfence #define spice_mb() __asm__ __volatile__ ("lock; addl $0,0(%%rsp)": : :"memory") #endif + +#else + +#ifdef _WIN64 +//__asm not supported on _WIN64, so use macro instead. +#define spice_mb MemoryBarrier #else #define spice_mb() __asm {lock add [esp], 0} #endif +#endif + #endif /* _H_SPICE_BARRIER */