libFLAC: Fix cpuid detecton on old Cyrix CPUs
authorErik de Castro Lopo <erikd@mega-nerd.com>
Wed, 13 Jul 2016 09:45:53 +0000 (19:45 +1000)
committerErik de Castro Lopo <erikd@mega-nerd.com>
Wed, 13 Jul 2016 09:47:11 +0000 (19:47 +1000)
Some old CPUs (eg Cyrix) set EDX but not ECX when executing CPUID.
One of the solutions is to clear ECX before calling cpuid. From
https://bugzilla.mozilla.org/show_bug.cgi?id=1096651#c9 bug

Patch-from: lvqcl <lvqcl.mail@gmail.com>

src/libFLAC/ia32/cpu_asm.nasm

index 036e865..a6c4d86 100644 (file)
@@ -78,6 +78,7 @@ cident FLAC__cpu_info_asm_ia32
        cpuid
        cmp     eax, 1
        jb      .no_cpuid
+       xor     ecx, ecx
        mov     eax, 1
        cpuid
        mov     ebx, [esp + 8]