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;