ref: 8caeeb886a67c8314df4f9f5abd5f55aec6b2e82
parent: 0a64f943fccc194a16c53af461f81bd48d840d71
author: Yaowu Xu <yaowu@google.com>
date: Fri Nov 22 11:45:56 EST 2013
Added cpuid compatibility for older MSVC versions Change-Id: I891bf936e03411ca611620e7cb2eb5081993a346
--- a/vpx_ports/x86.h
+++ b/vpx_ports/x86.h
@@ -71,6 +71,7 @@
#endif
#else /* end __SUNPRO__ */
#if ARCH_X86_64
+#if defined(_MSC_VER) && _MSC_VER > 1500
void __cpuidex(int CPUInfo[4], int info_type, int ecxvalue);
#pragma intrinsic(__cpuidex)
#define cpuid(func, func2, a, b, c, d) do {\
@@ -78,6 +79,15 @@
__cpuidex(regs, func, func2); \
a = regs[0]; b = regs[1]; c = regs[2]; d = regs[3];\
} while(0)
+#else
+void __cpuid(int CPUInfo[4], int info_type);
+#pragma intrinsic(__cpuid)
+#define cpuid(func, func2, a, b, c, d) do {\
+ int regs[4];\
+ __cpuid(regs, func); \
+ a = regs[0]; b = regs[1]; c = regs[2]; d = regs[3];\
+ } while (0)
+#endif
#else
#define cpuid(func, func2, a, b, c, d)\
__asm mov eax, func\
--
⑨