diff options
author | Paul Wilkins <paulwilkins@google.com> | 2013-11-23 03:05:55 -0800 |
---|---|---|
committer | Gerrit Code Review <gerrit@gerrit.golo.chromium.org> | 2013-11-23 03:05:55 -0800 |
commit | f345da523850d0dab4c3d9e99f43978a7db467ce (patch) | |
tree | 5e358ee6e981c37ce24666fca6d5e3e3edd852e5 /vpx_ports | |
parent | 520aa705cbda11faf64b311e346a42104146da8a (diff) | |
parent | 8caeeb886a67c8314df4f9f5abd5f55aec6b2e82 (diff) | |
download | libvpx-f345da523850d0dab4c3d9e99f43978a7db467ce.tar libvpx-f345da523850d0dab4c3d9e99f43978a7db467ce.tar.gz libvpx-f345da523850d0dab4c3d9e99f43978a7db467ce.tar.bz2 libvpx-f345da523850d0dab4c3d9e99f43978a7db467ce.zip |
Merge "Added cpuid compatibility for older MSVC versions"
Diffstat (limited to 'vpx_ports')
-rw-r--r-- | vpx_ports/x86.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/vpx_ports/x86.h b/vpx_ports/x86.h index e5e97e706..fdbed2524 100644 --- a/vpx_ports/x86.h +++ b/vpx_ports/x86.h @@ -71,6 +71,7 @@ typedef enum { #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 {\ @@ -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];\ } 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\ __asm mov ecx, func2\ |