Added cpuid compatibility for older MSVC versions
Change-Id: I891bf936e03411ca611620e7cb2eb5081993a346
This commit is contained in:
parent
0a64f943fc
commit
8caeeb886a
@ -71,6 +71,7 @@ typedef enum {
|
|||||||
#endif
|
#endif
|
||||||
#else /* end __SUNPRO__ */
|
#else /* end __SUNPRO__ */
|
||||||
#if ARCH_X86_64
|
#if ARCH_X86_64
|
||||||
|
#if defined(_MSC_VER) && _MSC_VER > 1500
|
||||||
void __cpuidex(int CPUInfo[4], int info_type, int ecxvalue);
|
void __cpuidex(int CPUInfo[4], int info_type, int ecxvalue);
|
||||||
#pragma intrinsic(__cpuidex)
|
#pragma intrinsic(__cpuidex)
|
||||||
#define cpuid(func, func2, a, b, c, d) do {\
|
#define cpuid(func, func2, a, b, c, d) do {\
|
||||||
@ -79,6 +80,15 @@ void __cpuidex(int CPUInfo[4], int info_type, int ecxvalue);
|
|||||||
a = regs[0]; b = regs[1]; c = regs[2]; d = regs[3];\
|
a = regs[0]; b = regs[1]; c = regs[2]; d = regs[3];\
|
||||||
} while(0)
|
} while(0)
|
||||||
#else
|
#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)\
|
#define cpuid(func, func2, a, b, c, d)\
|
||||||
__asm mov eax, func\
|
__asm mov eax, func\
|
||||||
__asm mov ecx, func2\
|
__asm mov ecx, func2\
|
||||||
|
Loading…
Reference in New Issue
Block a user