Date: Sat, 24 Jan 2004 14:49:58 +0100
authorSam Lantinga <slouken@libsdl.org>
Sat, 24 Jan 2004 15:55:00 +0000
changeset 787 07760c8854d1
parent 786 e1e0a0a94570
child 788 af9b588d639c
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.
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