X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=folly%2FCpuId.h;h=4a70e1464dca70a664992d421aefeeb26e257d96;hb=0b326f2ebc27293c6dcfab91fd5d991c4cd4ea03;hp=12e9b0743293e13b89e1859c8064fb682d75698b;hpb=22afce906d7e98d95f8c45c3301072d9fd891d41;p=folly.git diff --git a/folly/CpuId.h b/folly/CpuId.h index 12e9b074..4a70e146 100644 --- a/folly/CpuId.h +++ b/folly/CpuId.h @@ -18,6 +18,7 @@ #define FOLLY_CPUID_H_ #include +#include namespace folly { @@ -29,7 +30,14 @@ namespace folly { class CpuId { public: CpuId() { -#if defined(__x86_64__) || defined(__i386__) +#ifdef _MSC_VER + int reg[4]; + + __cpuid((int *)reg, 1); + c_ = reg[2]; + d_ = reg[3]; + +#elif FOLLY_X64 || defined(__i386__) __asm__("cpuid" : "=c"(c_), "=d"(d_) : "a"(1) : "ebx"); #else // On non-Intel, none of these features exist; at least not in the same form