# HG changeset patch # User Sam Lantinga # Date 1074959700 0 # Node ID 07760c8854d1bca52e60d44431a813aeed9a0bf1 # Parent e1e0a0a9457079ec54bf7972ec2b37530cff1d48 Date: Sat, 24 Jan 2004 14:49:58 +0100 From: Stephane Marchesin Subject: Re: [SDL] 3DNow! detection on a P4 system Well... I found another bug : 3dnow was detected on P2/P3 cpus. So I took one more look at the code and found a mistake in CPU_getCPUIDFeaturesExt : The condition for having extended cpuinfo is that when we query extended cpuinfo we get a result >= 0x80000001. So we must exit if eax < 0x80000001. The attached patch does that. diff -r e1e0a0a94570 -r 07760c8854d1 src/cpuinfo/SDL_cpuinfo.c --- a/src/cpuinfo/SDL_cpuinfo.c Sat Jan 24 05:57:56 2004 +0000 +++ b/src/cpuinfo/SDL_cpuinfo.c Sat Jan 24 15:55:00 2004 +0000 @@ -128,7 +128,7 @@ " movl $0x80000000,%%eax # Query for extended functions \n" " cpuid # Get extended function limit \n" " cmpl $0x80000001,%%eax \n" -" jbe 1f # Nope, we dont have function 800000001h\n" +" jl 1f # Nope, we dont have function 800000001h\n" " movl $0x80000001,%%eax # Setup extended function 800000001h\n" " cpuid # and get the information \n" " movl %%edx,%0 \n" @@ -143,7 +143,7 @@ mov eax,80000000h ; Query for extended functions cpuid ; Get extended function limit cmp eax,80000001h - jbe done ; Nope, we dont have function 800000001h + jl done ; Nope, we dont have function 800000001h mov eax,80000001h ; Setup extended function 800000001h cpuid ; and get the information mov features,edx