X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;ds=sidebyside;f=folly%2FPortability.h;h=40a626038e688d751aa77eb16ea1115c73a699ee;hb=778b571111db32e14f1f9ecf7746f2e6e5ea7f3d;hp=fbd8e3aba8786fab5297c0073e5fa5b459c1df0e;hpb=150fc4e9c0f136baabdc50ca01498af4240c6a20;p=folly.git diff --git a/folly/Portability.h b/folly/Portability.h index fbd8e3ab..40a62603 100644 --- a/folly/Portability.h +++ b/folly/Portability.h @@ -284,17 +284,25 @@ inline size_t malloc_usable_size(void* ptr) { # define FOLLY_HAS_RTTI 1 #endif +#ifdef _MSC_VER +# include +#endif + namespace folly { inline void asm_volatile_pause() { -#if defined(__i386__) || FOLLY_X64 +#if defined(_MSC_VER) && (defined(_M_IX86) || defined(_M_X64)) + ::_mm_pause(); +#elif defined(__i386__) || FOLLY_X64 asm volatile ("pause"); #elif FOLLY_A64 asm volatile ("wfe"); #endif } inline void asm_pause() { -#if defined(__i386__) || FOLLY_X64 +#if defined(_MSC_VER) && (defined(_M_IX86) || defined(_M_X64)) + ::_mm_pause(); +#elif defined(__i386__) || FOLLY_X64 asm ("pause"); #elif FOLLY_A64 asm ("wfe");