From 8721d71492e8c1c3eecf3fb0739a7465805660df Mon Sep 17 00:00:00 2001 From: jules Date: Tue, 19 Jun 2007 14:37:32 +0000 Subject: [PATCH] 64-bit cpuid fix --- .../platform_specific_code/juce_linux_SystemStats.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/build/linux/platform_specific_code/juce_linux_SystemStats.cpp b/build/linux/platform_specific_code/juce_linux_SystemStats.cpp index b748975b32..3303cb9f0a 100644 --- a/build/linux/platform_specific_code/juce_linux_SystemStats.cpp +++ b/build/linux/platform_specific_code/juce_linux_SystemStats.cpp @@ -64,9 +64,14 @@ static juce_noinline unsigned int getCPUIDWord (int* familyModel, int* extFeatur unsigned int family = 0; unsigned int dummy = 0; +#if JUCE_64BIT + __asm__ ("cpuid" + : "=a" (family), "=b" (ext), "=c" (dummy), "=d" (cpu) : "a" (1)); + +#else __asm__ ("push %%ebx; cpuid; mov %%ebx, %%edi; pop %%ebx" - : "=a" (family), "=D" (ext), "=c" (dummy),"=d" (cpu) - : "a" (1)); + : "=a" (family), "=D" (ext), "=c" (dummy), "=d" (cpu) : "a" (1)); +#endif if (familyModel != 0) *familyModel = family;