projects
/
folly.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add support for MSVC in asm_pause in Portability.h
[folly.git]
/
folly
/
Portability.h
diff --git
a/folly/Portability.h
b/folly/Portability.h
index fbd8e3aba8786fab5297c0073e5fa5b459c1df0e..40a626038e688d751aa77eb16ea1115c73a699ee 100644
(file)
--- 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
# define FOLLY_HAS_RTTI 1
#endif
+#ifdef _MSC_VER
+# include <intrin.h>
+#endif
+
namespace folly {
inline void asm_volatile_pause() {
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() {
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");
asm ("pause");
#elif FOLLY_A64
asm ("wfe");