Mercurial > sdl-ios-xcode
annotate src/cpuinfo/SDL_cpuinfo.c @ 2185:2032348afed1
This code adds support for DirectColor visuals to SDL 1.3. The support uses part of the Xmu library. To ensure that the library is
available and to keep people form having to install yet another library I have added the essential parts of Xmu in
src/video/extensions/XmuStdCmap and an include file in src/video/extensions. The support makes use of standard X11 mechanisms to
create color maps and make sure that an application uses the same color map for each window/visual combination. This should make it
possible for gamma support to be implemented based on a single color map per application.
Hurm... it looks like "make indent" modified a few extra files. Those are getting committed too.
author | Bob Pendleton <bob@pendleton.com> |
---|---|
date | Thu, 12 Jul 2007 20:00:50 +0000 |
parents | c121d94672cb |
children | 99210400e8b9 |
rev | line source |
---|---|
739
22dbf364c017
Added SDL_HasMMX(), SDL_Has3DNow(), SDL_HasSSE() in SDL_cpuinfo.h
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
1 /* |
22dbf364c017
Added SDL_HasMMX(), SDL_Has3DNow(), SDL_HasSSE() in SDL_cpuinfo.h
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
2 SDL - Simple DirectMedia Layer |
1312
c9b51268668f
Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents:
1229
diff
changeset
|
3 Copyright (C) 1997-2006 Sam Lantinga |
739
22dbf364c017
Added SDL_HasMMX(), SDL_Has3DNow(), SDL_HasSSE() in SDL_cpuinfo.h
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
4 |
22dbf364c017
Added SDL_HasMMX(), SDL_Has3DNow(), SDL_HasSSE() in SDL_cpuinfo.h
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
5 This library is free software; you can redistribute it and/or |
1312
c9b51268668f
Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents:
1229
diff
changeset
|
6 modify it under the terms of the GNU Lesser General Public |
739
22dbf364c017
Added SDL_HasMMX(), SDL_Has3DNow(), SDL_HasSSE() in SDL_cpuinfo.h
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
7 License as published by the Free Software Foundation; either |
1312
c9b51268668f
Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents:
1229
diff
changeset
|
8 version 2.1 of the License, or (at your option) any later version. |
739
22dbf364c017
Added SDL_HasMMX(), SDL_Has3DNow(), SDL_HasSSE() in SDL_cpuinfo.h
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
9 |
22dbf364c017
Added SDL_HasMMX(), SDL_Has3DNow(), SDL_HasSSE() in SDL_cpuinfo.h
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
10 This library is distributed in the hope that it will be useful, |
22dbf364c017
Added SDL_HasMMX(), SDL_Has3DNow(), SDL_HasSSE() in SDL_cpuinfo.h
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
11 but WITHOUT ANY WARRANTY; without even the implied warranty of |
22dbf364c017
Added SDL_HasMMX(), SDL_Has3DNow(), SDL_HasSSE() in SDL_cpuinfo.h
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
1312
c9b51268668f
Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents:
1229
diff
changeset
|
13 Lesser General Public License for more details. |
739
22dbf364c017
Added SDL_HasMMX(), SDL_Has3DNow(), SDL_HasSSE() in SDL_cpuinfo.h
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
14 |
1312
c9b51268668f
Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents:
1229
diff
changeset
|
15 You should have received a copy of the GNU Lesser General Public |
c9b51268668f
Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents:
1229
diff
changeset
|
16 License along with this library; if not, write to the Free Software |
c9b51268668f
Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents:
1229
diff
changeset
|
17 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA |
739
22dbf364c017
Added SDL_HasMMX(), SDL_Has3DNow(), SDL_HasSSE() in SDL_cpuinfo.h
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
18 |
22dbf364c017
Added SDL_HasMMX(), SDL_Has3DNow(), SDL_HasSSE() in SDL_cpuinfo.h
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
19 Sam Lantinga |
22dbf364c017
Added SDL_HasMMX(), SDL_Has3DNow(), SDL_HasSSE() in SDL_cpuinfo.h
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
20 slouken@libsdl.org |
22dbf364c017
Added SDL_HasMMX(), SDL_Has3DNow(), SDL_HasSSE() in SDL_cpuinfo.h
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
21 */ |
1402
d910939febfa
Use consistent identifiers for the various platforms we support.
Sam Lantinga <slouken@libsdl.org>
parents:
1361
diff
changeset
|
22 #include "SDL_config.h" |
739
22dbf364c017
Added SDL_HasMMX(), SDL_Has3DNow(), SDL_HasSSE() in SDL_cpuinfo.h
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
23 |
22dbf364c017
Added SDL_HasMMX(), SDL_Has3DNow(), SDL_HasSSE() in SDL_cpuinfo.h
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
24 /* CPU feature detection for SDL */ |
22dbf364c017
Added SDL_HasMMX(), SDL_Has3DNow(), SDL_HasSSE() in SDL_cpuinfo.h
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
25 |
1361
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
1312
diff
changeset
|
26 #include "SDL.h" |
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
1312
diff
changeset
|
27 #include "SDL_cpuinfo.h" |
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
1312
diff
changeset
|
28 |
1590
96d8c3fec479
Don't detect Altivec on MacOS X Intel
Sam Lantinga <slouken@libsdl.org>
parents:
1487
diff
changeset
|
29 #if defined(__MACOSX__) && defined(__ppc__) |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
30 #include <sys/sysctl.h> /* For AltiVec check */ |
1487
dc6b59e925a2
Cleaning up warnings on MacOS X
Sam Lantinga <slouken@libsdl.org>
parents:
1442
diff
changeset
|
31 #elif SDL_ALTIVEC_BLITTERS && HAVE_SETJMP |
793
c20f08c4f437
Altivec detection on non-MacOS X systems
Sam Lantinga <slouken@libsdl.org>
parents:
787
diff
changeset
|
32 #include <signal.h> |
c20f08c4f437
Altivec detection on non-MacOS X systems
Sam Lantinga <slouken@libsdl.org>
parents:
787
diff
changeset
|
33 #include <setjmp.h> |
c20f08c4f437
Altivec detection on non-MacOS X systems
Sam Lantinga <slouken@libsdl.org>
parents:
787
diff
changeset
|
34 #endif |
c20f08c4f437
Altivec detection on non-MacOS X systems
Sam Lantinga <slouken@libsdl.org>
parents:
787
diff
changeset
|
35 |
745
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
36 #define CPU_HAS_RDTSC 0x00000001 |
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
37 #define CPU_HAS_MMX 0x00000002 |
785
ca06a994f03c
Fixed bugs in CPU feature detection and added extended feature detection
Sam Lantinga <slouken@libsdl.org>
parents:
784
diff
changeset
|
38 #define CPU_HAS_MMXEXT 0x00000004 |
ca06a994f03c
Fixed bugs in CPU feature detection and added extended feature detection
Sam Lantinga <slouken@libsdl.org>
parents:
784
diff
changeset
|
39 #define CPU_HAS_3DNOW 0x00000010 |
ca06a994f03c
Fixed bugs in CPU feature detection and added extended feature detection
Sam Lantinga <slouken@libsdl.org>
parents:
784
diff
changeset
|
40 #define CPU_HAS_3DNOWEXT 0x00000020 |
ca06a994f03c
Fixed bugs in CPU feature detection and added extended feature detection
Sam Lantinga <slouken@libsdl.org>
parents:
784
diff
changeset
|
41 #define CPU_HAS_SSE 0x00000040 |
ca06a994f03c
Fixed bugs in CPU feature detection and added extended feature detection
Sam Lantinga <slouken@libsdl.org>
parents:
784
diff
changeset
|
42 #define CPU_HAS_SSE2 0x00000080 |
ca06a994f03c
Fixed bugs in CPU feature detection and added extended feature detection
Sam Lantinga <slouken@libsdl.org>
parents:
784
diff
changeset
|
43 #define CPU_HAS_ALTIVEC 0x00000100 |
745
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
44 |
1487
dc6b59e925a2
Cleaning up warnings on MacOS X
Sam Lantinga <slouken@libsdl.org>
parents:
1442
diff
changeset
|
45 #if SDL_ALTIVEC_BLITTERS && HAVE_SETJMP && !__MACOSX__ |
793
c20f08c4f437
Altivec detection on non-MacOS X systems
Sam Lantinga <slouken@libsdl.org>
parents:
787
diff
changeset
|
46 /* This is the brute force way of detecting instruction sets... |
c20f08c4f437
Altivec detection on non-MacOS X systems
Sam Lantinga <slouken@libsdl.org>
parents:
787
diff
changeset
|
47 the idea is borrowed from the libmpeg2 library - thanks! |
c20f08c4f437
Altivec detection on non-MacOS X systems
Sam Lantinga <slouken@libsdl.org>
parents:
787
diff
changeset
|
48 */ |
c20f08c4f437
Altivec detection on non-MacOS X systems
Sam Lantinga <slouken@libsdl.org>
parents:
787
diff
changeset
|
49 static jmp_buf jmpbuf; |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
50 static void |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
51 illegal_instruction(int sig) |
793
c20f08c4f437
Altivec detection on non-MacOS X systems
Sam Lantinga <slouken@libsdl.org>
parents:
787
diff
changeset
|
52 { |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
53 longjmp(jmpbuf, 1); |
793
c20f08c4f437
Altivec detection on non-MacOS X systems
Sam Lantinga <slouken@libsdl.org>
parents:
787
diff
changeset
|
54 } |
1361
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
1312
diff
changeset
|
55 #endif /* HAVE_SETJMP */ |
793
c20f08c4f437
Altivec detection on non-MacOS X systems
Sam Lantinga <slouken@libsdl.org>
parents:
787
diff
changeset
|
56 |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
57 static __inline__ int |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
58 CPU_haveCPUID(void) |
745
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
59 { |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
60 int has_CPUID = 0; |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
61 /* *INDENT-OFF* */ |
745
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
62 #if defined(__GNUC__) && defined(i386) |
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
63 __asm__ ( |
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
64 " pushfl # Get original EFLAGS \n" |
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
65 " popl %%eax \n" |
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
66 " movl %%eax,%%ecx \n" |
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
67 " xorl $0x200000,%%eax # Flip ID bit in EFLAGS \n" |
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
68 " pushl %%eax # Save new EFLAGS value on stack \n" |
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
69 " popfl # Replace current EFLAGS value \n" |
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
70 " pushfl # Get new EFLAGS \n" |
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
71 " popl %%eax # Store new EFLAGS in EAX \n" |
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
72 " xorl %%ecx,%%eax # Can not toggle ID bit, \n" |
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
73 " jz 1f # Processor=80486 \n" |
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
74 " movl $1,%0 # We have CPUID support \n" |
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
75 "1: \n" |
784
a2dde6aff60e
*** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents:
778
diff
changeset
|
76 : "=m" (has_CPUID) |
745
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
77 : |
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
78 : "%eax", "%ecx" |
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
79 ); |
881
9eb85a211abd
Date: Tue, 30 Mar 2004 18:18:13 -0600
Sam Lantinga <slouken@libsdl.org>
parents:
804
diff
changeset
|
80 #elif defined(__GNUC__) && defined(__x86_64__) |
9eb85a211abd
Date: Tue, 30 Mar 2004 18:18:13 -0600
Sam Lantinga <slouken@libsdl.org>
parents:
804
diff
changeset
|
81 /* Technically, if this is being compiled under __x86_64__ then it has |
9eb85a211abd
Date: Tue, 30 Mar 2004 18:18:13 -0600
Sam Lantinga <slouken@libsdl.org>
parents:
804
diff
changeset
|
82 CPUid by definition. But it's nice to be able to prove it. :) */ |
9eb85a211abd
Date: Tue, 30 Mar 2004 18:18:13 -0600
Sam Lantinga <slouken@libsdl.org>
parents:
804
diff
changeset
|
83 __asm__ ( |
9eb85a211abd
Date: Tue, 30 Mar 2004 18:18:13 -0600
Sam Lantinga <slouken@libsdl.org>
parents:
804
diff
changeset
|
84 " pushfq # Get original EFLAGS \n" |
9eb85a211abd
Date: Tue, 30 Mar 2004 18:18:13 -0600
Sam Lantinga <slouken@libsdl.org>
parents:
804
diff
changeset
|
85 " popq %%rax \n" |
9eb85a211abd
Date: Tue, 30 Mar 2004 18:18:13 -0600
Sam Lantinga <slouken@libsdl.org>
parents:
804
diff
changeset
|
86 " movq %%rax,%%rcx \n" |
9eb85a211abd
Date: Tue, 30 Mar 2004 18:18:13 -0600
Sam Lantinga <slouken@libsdl.org>
parents:
804
diff
changeset
|
87 " xorl $0x200000,%%eax # Flip ID bit in EFLAGS \n" |
9eb85a211abd
Date: Tue, 30 Mar 2004 18:18:13 -0600
Sam Lantinga <slouken@libsdl.org>
parents:
804
diff
changeset
|
88 " pushq %%rax # Save new EFLAGS value on stack \n" |
9eb85a211abd
Date: Tue, 30 Mar 2004 18:18:13 -0600
Sam Lantinga <slouken@libsdl.org>
parents:
804
diff
changeset
|
89 " popfq # Replace current EFLAGS value \n" |
9eb85a211abd
Date: Tue, 30 Mar 2004 18:18:13 -0600
Sam Lantinga <slouken@libsdl.org>
parents:
804
diff
changeset
|
90 " pushfq # Get new EFLAGS \n" |
9eb85a211abd
Date: Tue, 30 Mar 2004 18:18:13 -0600
Sam Lantinga <slouken@libsdl.org>
parents:
804
diff
changeset
|
91 " popq %%rax # Store new EFLAGS in EAX \n" |
9eb85a211abd
Date: Tue, 30 Mar 2004 18:18:13 -0600
Sam Lantinga <slouken@libsdl.org>
parents:
804
diff
changeset
|
92 " xorl %%ecx,%%eax # Can not toggle ID bit, \n" |
9eb85a211abd
Date: Tue, 30 Mar 2004 18:18:13 -0600
Sam Lantinga <slouken@libsdl.org>
parents:
804
diff
changeset
|
93 " jz 1f # Processor=80486 \n" |
9eb85a211abd
Date: Tue, 30 Mar 2004 18:18:13 -0600
Sam Lantinga <slouken@libsdl.org>
parents:
804
diff
changeset
|
94 " movl $1,%0 # We have CPUID support \n" |
9eb85a211abd
Date: Tue, 30 Mar 2004 18:18:13 -0600
Sam Lantinga <slouken@libsdl.org>
parents:
804
diff
changeset
|
95 "1: \n" |
9eb85a211abd
Date: Tue, 30 Mar 2004 18:18:13 -0600
Sam Lantinga <slouken@libsdl.org>
parents:
804
diff
changeset
|
96 : "=m" (has_CPUID) |
9eb85a211abd
Date: Tue, 30 Mar 2004 18:18:13 -0600
Sam Lantinga <slouken@libsdl.org>
parents:
804
diff
changeset
|
97 : |
9eb85a211abd
Date: Tue, 30 Mar 2004 18:18:13 -0600
Sam Lantinga <slouken@libsdl.org>
parents:
804
diff
changeset
|
98 : "%rax", "%rcx" |
9eb85a211abd
Date: Tue, 30 Mar 2004 18:18:13 -0600
Sam Lantinga <slouken@libsdl.org>
parents:
804
diff
changeset
|
99 ); |
1442
e3242177fe4a
Updated OS/2 build, yay!
Sam Lantinga <slouken@libsdl.org>
parents:
1426
diff
changeset
|
100 #elif (defined(_MSC_VER) && defined(_M_IX86)) || defined(__WATCOMC__) |
749
06cdd106d61c
Updated Visual C++ support
Sam Lantinga <slouken@libsdl.org>
parents:
747
diff
changeset
|
101 __asm { |
745
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
102 pushfd ; Get original EFLAGS |
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
103 pop eax |
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
104 mov ecx, eax |
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
105 xor eax, 200000h ; Flip ID bit in EFLAGS |
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
106 push eax ; Save new EFLAGS value on stack |
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
107 popfd ; Replace current EFLAGS value |
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
108 pushfd ; Get new EFLAGS |
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
109 pop eax ; Store new EFLAGS in EAX |
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
110 xor eax, ecx ; Can not toggle ID bit, |
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
111 jz done ; Processor=80486 |
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
112 mov has_CPUID,1 ; We have CPUID support |
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
113 done: |
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
114 } |
1864
7bea26ad3130
I think this fixes bug #244
Sam Lantinga <slouken@libsdl.org>
parents:
1590
diff
changeset
|
115 #elif defined(__sun) && defined(__i386) |
1361
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
1312
diff
changeset
|
116 __asm ( |
1229
1430f5fe092a
Patch from Michael Bonfils to add CPUID support for x86 Solaris.
Ryan C. Gordon <icculus@icculus.org>
parents:
1198
diff
changeset
|
117 " pushfl \n" |
1361
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
1312
diff
changeset
|
118 " popl %eax \n" |
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
1312
diff
changeset
|
119 " movl %eax,%ecx \n" |
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
1312
diff
changeset
|
120 " xorl $0x200000,%eax \n" |
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
1312
diff
changeset
|
121 " pushl %eax \n" |
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
1312
diff
changeset
|
122 " popfl \n" |
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
1312
diff
changeset
|
123 " pushfl \n" |
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
1312
diff
changeset
|
124 " popl %eax \n" |
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
1312
diff
changeset
|
125 " xorl %ecx,%eax \n" |
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
1312
diff
changeset
|
126 " jz 1f \n" |
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
1312
diff
changeset
|
127 " movl $1,-8(%ebp) \n" |
1229
1430f5fe092a
Patch from Michael Bonfils to add CPUID support for x86 Solaris.
Ryan C. Gordon <icculus@icculus.org>
parents:
1198
diff
changeset
|
128 "1: \n" |
1430f5fe092a
Patch from Michael Bonfils to add CPUID support for x86 Solaris.
Ryan C. Gordon <icculus@icculus.org>
parents:
1198
diff
changeset
|
129 ); |
1430f5fe092a
Patch from Michael Bonfils to add CPUID support for x86 Solaris.
Ryan C. Gordon <icculus@icculus.org>
parents:
1198
diff
changeset
|
130 #elif defined(__sun) && defined(__amd64) |
1430f5fe092a
Patch from Michael Bonfils to add CPUID support for x86 Solaris.
Ryan C. Gordon <icculus@icculus.org>
parents:
1198
diff
changeset
|
131 __asm ( |
1430f5fe092a
Patch from Michael Bonfils to add CPUID support for x86 Solaris.
Ryan C. Gordon <icculus@icculus.org>
parents:
1198
diff
changeset
|
132 " pushfq \n" |
1430f5fe092a
Patch from Michael Bonfils to add CPUID support for x86 Solaris.
Ryan C. Gordon <icculus@icculus.org>
parents:
1198
diff
changeset
|
133 " popq %rax \n" |
1430f5fe092a
Patch from Michael Bonfils to add CPUID support for x86 Solaris.
Ryan C. Gordon <icculus@icculus.org>
parents:
1198
diff
changeset
|
134 " movq %rax,%rcx \n" |
1430f5fe092a
Patch from Michael Bonfils to add CPUID support for x86 Solaris.
Ryan C. Gordon <icculus@icculus.org>
parents:
1198
diff
changeset
|
135 " xorl $0x200000,%eax \n" |
1430f5fe092a
Patch from Michael Bonfils to add CPUID support for x86 Solaris.
Ryan C. Gordon <icculus@icculus.org>
parents:
1198
diff
changeset
|
136 " pushq %rax \n" |
1430f5fe092a
Patch from Michael Bonfils to add CPUID support for x86 Solaris.
Ryan C. Gordon <icculus@icculus.org>
parents:
1198
diff
changeset
|
137 " popfq \n" |
1430f5fe092a
Patch from Michael Bonfils to add CPUID support for x86 Solaris.
Ryan C. Gordon <icculus@icculus.org>
parents:
1198
diff
changeset
|
138 " pushfq \n" |
1430f5fe092a
Patch from Michael Bonfils to add CPUID support for x86 Solaris.
Ryan C. Gordon <icculus@icculus.org>
parents:
1198
diff
changeset
|
139 " popq %rax \n" |
1430f5fe092a
Patch from Michael Bonfils to add CPUID support for x86 Solaris.
Ryan C. Gordon <icculus@icculus.org>
parents:
1198
diff
changeset
|
140 " xorl %ecx,%eax \n" |
1430f5fe092a
Patch from Michael Bonfils to add CPUID support for x86 Solaris.
Ryan C. Gordon <icculus@icculus.org>
parents:
1198
diff
changeset
|
141 " jz 1f \n" |
1430f5fe092a
Patch from Michael Bonfils to add CPUID support for x86 Solaris.
Ryan C. Gordon <icculus@icculus.org>
parents:
1198
diff
changeset
|
142 " movl $1,-8(%rbp) \n" |
1430f5fe092a
Patch from Michael Bonfils to add CPUID support for x86 Solaris.
Ryan C. Gordon <icculus@icculus.org>
parents:
1198
diff
changeset
|
143 "1: \n" |
1430f5fe092a
Patch from Michael Bonfils to add CPUID support for x86 Solaris.
Ryan C. Gordon <icculus@icculus.org>
parents:
1198
diff
changeset
|
144 ); |
745
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
145 #endif |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
146 /* *INDENT-ON* */ |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
147 return has_CPUID; |
745
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
148 } |
739
22dbf364c017
Added SDL_HasMMX(), SDL_Has3DNow(), SDL_HasSSE() in SDL_cpuinfo.h
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
149 |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
150 static __inline__ int |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
151 CPU_getCPUIDFeatures(void) |
745
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
152 { |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
153 int features = 0; |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
154 /* *INDENT-OFF* */ |
881
9eb85a211abd
Date: Tue, 30 Mar 2004 18:18:13 -0600
Sam Lantinga <slouken@libsdl.org>
parents:
804
diff
changeset
|
155 #if defined(__GNUC__) && ( defined(i386) || defined(__x86_64__) ) |
745
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
156 __asm__ ( |
785
ca06a994f03c
Fixed bugs in CPU feature detection and added extended feature detection
Sam Lantinga <slouken@libsdl.org>
parents:
784
diff
changeset
|
157 " movl %%ebx,%%edi\n" |
745
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
158 " xorl %%eax,%%eax # Set up for CPUID instruction \n" |
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
159 " cpuid # Get and save vendor ID \n" |
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
160 " cmpl $1,%%eax # Make sure 1 is valid input for CPUID\n" |
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
161 " jl 1f # We dont have the CPUID instruction\n" |
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
162 " xorl %%eax,%%eax \n" |
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
163 " incl %%eax \n" |
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
164 " cpuid # Get family/model/stepping/features\n" |
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
165 " movl %%edx,%0 \n" |
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
166 "1: \n" |
785
ca06a994f03c
Fixed bugs in CPU feature detection and added extended feature detection
Sam Lantinga <slouken@libsdl.org>
parents:
784
diff
changeset
|
167 " movl %%edi,%%ebx\n" |
784
a2dde6aff60e
*** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents:
778
diff
changeset
|
168 : "=m" (features) |
745
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
169 : |
887
b4b64bb88f2f
Date: Mon, 10 May 2004 10:17:46 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
881
diff
changeset
|
170 : "%eax", "%ecx", "%edx", "%edi" |
745
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
171 ); |
1442
e3242177fe4a
Updated OS/2 build, yay!
Sam Lantinga <slouken@libsdl.org>
parents:
1426
diff
changeset
|
172 #elif (defined(_MSC_VER) && defined(_M_IX86)) || defined(__WATCOMC__) |
749
06cdd106d61c
Updated Visual C++ support
Sam Lantinga <slouken@libsdl.org>
parents:
747
diff
changeset
|
173 __asm { |
745
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
174 xor eax, eax ; Set up for CPUID instruction |
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
175 cpuid ; Get and save vendor ID |
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
176 cmp eax, 1 ; Make sure 1 is valid input for CPUID |
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
177 jl done ; We dont have the CPUID instruction |
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
178 xor eax, eax |
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
179 inc eax |
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
180 cpuid ; Get family/model/stepping/features |
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
181 mov features, edx |
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
182 done: |
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
183 } |
1864
7bea26ad3130
I think this fixes bug #244
Sam Lantinga <slouken@libsdl.org>
parents:
1590
diff
changeset
|
184 #elif defined(__sun) && (defined(__i386) || defined(__amd64)) |
1229
1430f5fe092a
Patch from Michael Bonfils to add CPUID support for x86 Solaris.
Ryan C. Gordon <icculus@icculus.org>
parents:
1198
diff
changeset
|
185 __asm( |
1430f5fe092a
Patch from Michael Bonfils to add CPUID support for x86 Solaris.
Ryan C. Gordon <icculus@icculus.org>
parents:
1198
diff
changeset
|
186 " movl %ebx,%edi\n" |
1430f5fe092a
Patch from Michael Bonfils to add CPUID support for x86 Solaris.
Ryan C. Gordon <icculus@icculus.org>
parents:
1198
diff
changeset
|
187 " xorl %eax,%eax \n" |
1430f5fe092a
Patch from Michael Bonfils to add CPUID support for x86 Solaris.
Ryan C. Gordon <icculus@icculus.org>
parents:
1198
diff
changeset
|
188 " cpuid \n" |
1430f5fe092a
Patch from Michael Bonfils to add CPUID support for x86 Solaris.
Ryan C. Gordon <icculus@icculus.org>
parents:
1198
diff
changeset
|
189 " cmpl $1,%eax \n" |
1430f5fe092a
Patch from Michael Bonfils to add CPUID support for x86 Solaris.
Ryan C. Gordon <icculus@icculus.org>
parents:
1198
diff
changeset
|
190 " jl 1f \n" |
1430f5fe092a
Patch from Michael Bonfils to add CPUID support for x86 Solaris.
Ryan C. Gordon <icculus@icculus.org>
parents:
1198
diff
changeset
|
191 " xorl %eax,%eax \n" |
1430f5fe092a
Patch from Michael Bonfils to add CPUID support for x86 Solaris.
Ryan C. Gordon <icculus@icculus.org>
parents:
1198
diff
changeset
|
192 " incl %eax \n" |
1430f5fe092a
Patch from Michael Bonfils to add CPUID support for x86 Solaris.
Ryan C. Gordon <icculus@icculus.org>
parents:
1198
diff
changeset
|
193 " cpuid \n" |
1430f5fe092a
Patch from Michael Bonfils to add CPUID support for x86 Solaris.
Ryan C. Gordon <icculus@icculus.org>
parents:
1198
diff
changeset
|
194 #ifdef __i386 |
1430f5fe092a
Patch from Michael Bonfils to add CPUID support for x86 Solaris.
Ryan C. Gordon <icculus@icculus.org>
parents:
1198
diff
changeset
|
195 " movl %edx,-8(%ebp) \n" |
1430f5fe092a
Patch from Michael Bonfils to add CPUID support for x86 Solaris.
Ryan C. Gordon <icculus@icculus.org>
parents:
1198
diff
changeset
|
196 #else |
1430f5fe092a
Patch from Michael Bonfils to add CPUID support for x86 Solaris.
Ryan C. Gordon <icculus@icculus.org>
parents:
1198
diff
changeset
|
197 " movl %edx,-8(%rbp) \n" |
1430f5fe092a
Patch from Michael Bonfils to add CPUID support for x86 Solaris.
Ryan C. Gordon <icculus@icculus.org>
parents:
1198
diff
changeset
|
198 #endif |
1430f5fe092a
Patch from Michael Bonfils to add CPUID support for x86 Solaris.
Ryan C. Gordon <icculus@icculus.org>
parents:
1198
diff
changeset
|
199 "1: \n" |
1430f5fe092a
Patch from Michael Bonfils to add CPUID support for x86 Solaris.
Ryan C. Gordon <icculus@icculus.org>
parents:
1198
diff
changeset
|
200 " movl %edi,%ebx\n" ); |
745
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
201 #endif |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
202 /* *INDENT-ON* */ |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
203 return features; |
745
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
204 } |
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
205 |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
206 static __inline__ int |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
207 CPU_getCPUIDFeaturesExt(void) |
785
ca06a994f03c
Fixed bugs in CPU feature detection and added extended feature detection
Sam Lantinga <slouken@libsdl.org>
parents:
784
diff
changeset
|
208 { |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
209 int features = 0; |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
210 /* *INDENT-OFF* */ |
881
9eb85a211abd
Date: Tue, 30 Mar 2004 18:18:13 -0600
Sam Lantinga <slouken@libsdl.org>
parents:
804
diff
changeset
|
211 #if defined(__GNUC__) && (defined(i386) || defined (__x86_64__) ) |
785
ca06a994f03c
Fixed bugs in CPU feature detection and added extended feature detection
Sam Lantinga <slouken@libsdl.org>
parents:
784
diff
changeset
|
212 __asm__ ( |
ca06a994f03c
Fixed bugs in CPU feature detection and added extended feature detection
Sam Lantinga <slouken@libsdl.org>
parents:
784
diff
changeset
|
213 " movl %%ebx,%%edi\n" |
ca06a994f03c
Fixed bugs in CPU feature detection and added extended feature detection
Sam Lantinga <slouken@libsdl.org>
parents:
784
diff
changeset
|
214 " movl $0x80000000,%%eax # Query for extended functions \n" |
ca06a994f03c
Fixed bugs in CPU feature detection and added extended feature detection
Sam Lantinga <slouken@libsdl.org>
parents:
784
diff
changeset
|
215 " cpuid # Get extended function limit \n" |
ca06a994f03c
Fixed bugs in CPU feature detection and added extended feature detection
Sam Lantinga <slouken@libsdl.org>
parents:
784
diff
changeset
|
216 " cmpl $0x80000001,%%eax \n" |
787
07760c8854d1
Date: Sat, 24 Jan 2004 14:49:58 +0100
Sam Lantinga <slouken@libsdl.org>
parents:
786
diff
changeset
|
217 " jl 1f # Nope, we dont have function 800000001h\n" |
785
ca06a994f03c
Fixed bugs in CPU feature detection and added extended feature detection
Sam Lantinga <slouken@libsdl.org>
parents:
784
diff
changeset
|
218 " movl $0x80000001,%%eax # Setup extended function 800000001h\n" |
ca06a994f03c
Fixed bugs in CPU feature detection and added extended feature detection
Sam Lantinga <slouken@libsdl.org>
parents:
784
diff
changeset
|
219 " cpuid # and get the information \n" |
ca06a994f03c
Fixed bugs in CPU feature detection and added extended feature detection
Sam Lantinga <slouken@libsdl.org>
parents:
784
diff
changeset
|
220 " movl %%edx,%0 \n" |
ca06a994f03c
Fixed bugs in CPU feature detection and added extended feature detection
Sam Lantinga <slouken@libsdl.org>
parents:
784
diff
changeset
|
221 "1: \n" |
ca06a994f03c
Fixed bugs in CPU feature detection and added extended feature detection
Sam Lantinga <slouken@libsdl.org>
parents:
784
diff
changeset
|
222 " movl %%edi,%%ebx\n" |
ca06a994f03c
Fixed bugs in CPU feature detection and added extended feature detection
Sam Lantinga <slouken@libsdl.org>
parents:
784
diff
changeset
|
223 : "=m" (features) |
ca06a994f03c
Fixed bugs in CPU feature detection and added extended feature detection
Sam Lantinga <slouken@libsdl.org>
parents:
784
diff
changeset
|
224 : |
887
b4b64bb88f2f
Date: Mon, 10 May 2004 10:17:46 -0400
Sam Lantinga <slouken@libsdl.org>
parents:
881
diff
changeset
|
225 : "%eax", "%ecx", "%edx", "%edi" |
785
ca06a994f03c
Fixed bugs in CPU feature detection and added extended feature detection
Sam Lantinga <slouken@libsdl.org>
parents:
784
diff
changeset
|
226 ); |
1442
e3242177fe4a
Updated OS/2 build, yay!
Sam Lantinga <slouken@libsdl.org>
parents:
1426
diff
changeset
|
227 #elif (defined(_MSC_VER) && defined(_M_IX86)) || defined(__WATCOMC__) |
785
ca06a994f03c
Fixed bugs in CPU feature detection and added extended feature detection
Sam Lantinga <slouken@libsdl.org>
parents:
784
diff
changeset
|
228 __asm { |
ca06a994f03c
Fixed bugs in CPU feature detection and added extended feature detection
Sam Lantinga <slouken@libsdl.org>
parents:
784
diff
changeset
|
229 mov eax,80000000h ; Query for extended functions |
ca06a994f03c
Fixed bugs in CPU feature detection and added extended feature detection
Sam Lantinga <slouken@libsdl.org>
parents:
784
diff
changeset
|
230 cpuid ; Get extended function limit |
ca06a994f03c
Fixed bugs in CPU feature detection and added extended feature detection
Sam Lantinga <slouken@libsdl.org>
parents:
784
diff
changeset
|
231 cmp eax,80000001h |
787
07760c8854d1
Date: Sat, 24 Jan 2004 14:49:58 +0100
Sam Lantinga <slouken@libsdl.org>
parents:
786
diff
changeset
|
232 jl done ; Nope, we dont have function 800000001h |
785
ca06a994f03c
Fixed bugs in CPU feature detection and added extended feature detection
Sam Lantinga <slouken@libsdl.org>
parents:
784
diff
changeset
|
233 mov eax,80000001h ; Setup extended function 800000001h |
ca06a994f03c
Fixed bugs in CPU feature detection and added extended feature detection
Sam Lantinga <slouken@libsdl.org>
parents:
784
diff
changeset
|
234 cpuid ; and get the information |
ca06a994f03c
Fixed bugs in CPU feature detection and added extended feature detection
Sam Lantinga <slouken@libsdl.org>
parents:
784
diff
changeset
|
235 mov features,edx |
ca06a994f03c
Fixed bugs in CPU feature detection and added extended feature detection
Sam Lantinga <slouken@libsdl.org>
parents:
784
diff
changeset
|
236 done: |
ca06a994f03c
Fixed bugs in CPU feature detection and added extended feature detection
Sam Lantinga <slouken@libsdl.org>
parents:
784
diff
changeset
|
237 } |
1229
1430f5fe092a
Patch from Michael Bonfils to add CPUID support for x86 Solaris.
Ryan C. Gordon <icculus@icculus.org>
parents:
1198
diff
changeset
|
238 #elif defined(__sun) && ( defined(__i386) || defined(__amd64) ) |
1430f5fe092a
Patch from Michael Bonfils to add CPUID support for x86 Solaris.
Ryan C. Gordon <icculus@icculus.org>
parents:
1198
diff
changeset
|
239 __asm ( |
1430f5fe092a
Patch from Michael Bonfils to add CPUID support for x86 Solaris.
Ryan C. Gordon <icculus@icculus.org>
parents:
1198
diff
changeset
|
240 " movl %ebx,%edi\n" |
1430f5fe092a
Patch from Michael Bonfils to add CPUID support for x86 Solaris.
Ryan C. Gordon <icculus@icculus.org>
parents:
1198
diff
changeset
|
241 " movl $0x80000000,%eax \n" |
1430f5fe092a
Patch from Michael Bonfils to add CPUID support for x86 Solaris.
Ryan C. Gordon <icculus@icculus.org>
parents:
1198
diff
changeset
|
242 " cpuid \n" |
1430f5fe092a
Patch from Michael Bonfils to add CPUID support for x86 Solaris.
Ryan C. Gordon <icculus@icculus.org>
parents:
1198
diff
changeset
|
243 " cmpl $0x80000001,%eax \n" |
1430f5fe092a
Patch from Michael Bonfils to add CPUID support for x86 Solaris.
Ryan C. Gordon <icculus@icculus.org>
parents:
1198
diff
changeset
|
244 " jl 1f \n" |
1430f5fe092a
Patch from Michael Bonfils to add CPUID support for x86 Solaris.
Ryan C. Gordon <icculus@icculus.org>
parents:
1198
diff
changeset
|
245 " movl $0x80000001,%eax \n" |
1430f5fe092a
Patch from Michael Bonfils to add CPUID support for x86 Solaris.
Ryan C. Gordon <icculus@icculus.org>
parents:
1198
diff
changeset
|
246 " cpuid \n" |
1430f5fe092a
Patch from Michael Bonfils to add CPUID support for x86 Solaris.
Ryan C. Gordon <icculus@icculus.org>
parents:
1198
diff
changeset
|
247 #ifdef __i386 |
1430f5fe092a
Patch from Michael Bonfils to add CPUID support for x86 Solaris.
Ryan C. Gordon <icculus@icculus.org>
parents:
1198
diff
changeset
|
248 " movl %edx,-8(%ebp) \n" |
1430f5fe092a
Patch from Michael Bonfils to add CPUID support for x86 Solaris.
Ryan C. Gordon <icculus@icculus.org>
parents:
1198
diff
changeset
|
249 #else |
1430f5fe092a
Patch from Michael Bonfils to add CPUID support for x86 Solaris.
Ryan C. Gordon <icculus@icculus.org>
parents:
1198
diff
changeset
|
250 " movl %edx,-8(%rbp) \n" |
1430f5fe092a
Patch from Michael Bonfils to add CPUID support for x86 Solaris.
Ryan C. Gordon <icculus@icculus.org>
parents:
1198
diff
changeset
|
251 #endif |
1430f5fe092a
Patch from Michael Bonfils to add CPUID support for x86 Solaris.
Ryan C. Gordon <icculus@icculus.org>
parents:
1198
diff
changeset
|
252 "1: \n" |
1430f5fe092a
Patch from Michael Bonfils to add CPUID support for x86 Solaris.
Ryan C. Gordon <icculus@icculus.org>
parents:
1198
diff
changeset
|
253 " movl %edi,%ebx\n" |
1430f5fe092a
Patch from Michael Bonfils to add CPUID support for x86 Solaris.
Ryan C. Gordon <icculus@icculus.org>
parents:
1198
diff
changeset
|
254 ); |
785
ca06a994f03c
Fixed bugs in CPU feature detection and added extended feature detection
Sam Lantinga <slouken@libsdl.org>
parents:
784
diff
changeset
|
255 #endif |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
256 /* *INDENT-ON* */ |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
257 return features; |
785
ca06a994f03c
Fixed bugs in CPU feature detection and added extended feature detection
Sam Lantinga <slouken@libsdl.org>
parents:
784
diff
changeset
|
258 } |
ca06a994f03c
Fixed bugs in CPU feature detection and added extended feature detection
Sam Lantinga <slouken@libsdl.org>
parents:
784
diff
changeset
|
259 |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
260 static __inline__ int |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
261 CPU_haveRDTSC(void) |
745
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
262 { |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
263 if (CPU_haveCPUID()) { |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
264 return (CPU_getCPUIDFeatures() & 0x00000010); |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
265 } |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
266 return 0; |
745
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
267 } |
739
22dbf364c017
Added SDL_HasMMX(), SDL_Has3DNow(), SDL_HasSSE() in SDL_cpuinfo.h
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
268 |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
269 static __inline__ int |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
270 CPU_haveMMX(void) |
745
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
271 { |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
272 if (CPU_haveCPUID()) { |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
273 return (CPU_getCPUIDFeatures() & 0x00800000); |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
274 } |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
275 return 0; |
745
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
276 } |
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
277 |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
278 static __inline__ int |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
279 CPU_haveMMXExt(void) |
785
ca06a994f03c
Fixed bugs in CPU feature detection and added extended feature detection
Sam Lantinga <slouken@libsdl.org>
parents:
784
diff
changeset
|
280 { |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
281 if (CPU_haveCPUID()) { |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
282 return (CPU_getCPUIDFeaturesExt() & 0x00400000); |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
283 } |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
284 return 0; |
785
ca06a994f03c
Fixed bugs in CPU feature detection and added extended feature detection
Sam Lantinga <slouken@libsdl.org>
parents:
784
diff
changeset
|
285 } |
ca06a994f03c
Fixed bugs in CPU feature detection and added extended feature detection
Sam Lantinga <slouken@libsdl.org>
parents:
784
diff
changeset
|
286 |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
287 static __inline__ int |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
288 CPU_have3DNow(void) |
745
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
289 { |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
290 if (CPU_haveCPUID()) { |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
291 return (CPU_getCPUIDFeaturesExt() & 0x80000000); |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
292 } |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
293 return 0; |
785
ca06a994f03c
Fixed bugs in CPU feature detection and added extended feature detection
Sam Lantinga <slouken@libsdl.org>
parents:
784
diff
changeset
|
294 } |
ca06a994f03c
Fixed bugs in CPU feature detection and added extended feature detection
Sam Lantinga <slouken@libsdl.org>
parents:
784
diff
changeset
|
295 |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
296 static __inline__ int |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
297 CPU_have3DNowExt(void) |
785
ca06a994f03c
Fixed bugs in CPU feature detection and added extended feature detection
Sam Lantinga <slouken@libsdl.org>
parents:
784
diff
changeset
|
298 { |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
299 if (CPU_haveCPUID()) { |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
300 return (CPU_getCPUIDFeaturesExt() & 0x40000000); |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
301 } |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
302 return 0; |
745
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
303 } |
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
304 |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
305 static __inline__ int |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
306 CPU_haveSSE(void) |
745
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
307 { |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
308 if (CPU_haveCPUID()) { |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
309 return (CPU_getCPUIDFeatures() & 0x02000000); |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
310 } |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
311 return 0; |
785
ca06a994f03c
Fixed bugs in CPU feature detection and added extended feature detection
Sam Lantinga <slouken@libsdl.org>
parents:
784
diff
changeset
|
312 } |
ca06a994f03c
Fixed bugs in CPU feature detection and added extended feature detection
Sam Lantinga <slouken@libsdl.org>
parents:
784
diff
changeset
|
313 |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
314 static __inline__ int |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
315 CPU_haveSSE2(void) |
778
8ac3f46f9d09
Date: Tue, 6 Jan 2004 12:42:19 +0100
Sam Lantinga <slouken@libsdl.org>
parents:
769
diff
changeset
|
316 { |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
317 if (CPU_haveCPUID()) { |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
318 return (CPU_getCPUIDFeatures() & 0x04000000); |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
319 } |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
320 return 0; |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
321 } |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
322 |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
323 static __inline__ int |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
324 CPU_haveAltiVec(void) |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
325 { |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
326 volatile int altivec = 0; |
1590
96d8c3fec479
Don't detect Altivec on MacOS X Intel
Sam Lantinga <slouken@libsdl.org>
parents:
1487
diff
changeset
|
327 #if defined(__MACOSX__) && defined(__ppc__) |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
328 int selectors[2] = { CTL_HW, HW_VECTORUNIT }; |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
329 int hasVectorUnit = 0; |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
330 size_t length = sizeof(hasVectorUnit); |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
331 int error = sysctl(selectors, 2, &hasVectorUnit, &length, NULL, 0); |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
332 if (0 == error) |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
333 altivec = (hasVectorUnit != 0); |
1361
19418e4422cb
New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents:
1312
diff
changeset
|
334 #elif SDL_ALTIVEC_BLITTERS && HAVE_SETJMP |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
335 void (*handler) (int sig); |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
336 handler = signal(SIGILL, illegal_instruction); |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
337 if (setjmp(jmpbuf) == 0) { |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
338 asm volatile ("mtspr 256, %0\n\t" "vand %%v0, %%v0, %%v0"::"r" (-1)); |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
339 altivec = 1; |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
340 } |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
341 signal(SIGILL, handler); |
778
8ac3f46f9d09
Date: Tue, 6 Jan 2004 12:42:19 +0100
Sam Lantinga <slouken@libsdl.org>
parents:
769
diff
changeset
|
342 #endif |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
343 return altivec; |
778
8ac3f46f9d09
Date: Tue, 6 Jan 2004 12:42:19 +0100
Sam Lantinga <slouken@libsdl.org>
parents:
769
diff
changeset
|
344 } |
8ac3f46f9d09
Date: Tue, 6 Jan 2004 12:42:19 +0100
Sam Lantinga <slouken@libsdl.org>
parents:
769
diff
changeset
|
345 |
739
22dbf364c017
Added SDL_HasMMX(), SDL_Has3DNow(), SDL_HasSSE() in SDL_cpuinfo.h
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
346 static Uint32 SDL_CPUFeatures = 0xFFFFFFFF; |
22dbf364c017
Added SDL_HasMMX(), SDL_Has3DNow(), SDL_HasSSE() in SDL_cpuinfo.h
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
347 |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
348 static Uint32 |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
349 SDL_GetCPUFeatures(void) |
739
22dbf364c017
Added SDL_HasMMX(), SDL_Has3DNow(), SDL_HasSSE() in SDL_cpuinfo.h
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
350 { |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
351 if (SDL_CPUFeatures == 0xFFFFFFFF) { |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
352 SDL_CPUFeatures = 0; |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
353 if (CPU_haveRDTSC()) { |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
354 SDL_CPUFeatures |= CPU_HAS_RDTSC; |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
355 } |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
356 if (CPU_haveMMX()) { |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
357 SDL_CPUFeatures |= CPU_HAS_MMX; |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
358 } |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
359 if (CPU_haveMMXExt()) { |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
360 SDL_CPUFeatures |= CPU_HAS_MMXEXT; |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
361 } |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
362 if (CPU_have3DNow()) { |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
363 SDL_CPUFeatures |= CPU_HAS_3DNOW; |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
364 } |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
365 if (CPU_have3DNowExt()) { |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
366 SDL_CPUFeatures |= CPU_HAS_3DNOWEXT; |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
367 } |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
368 if (CPU_haveSSE()) { |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
369 SDL_CPUFeatures |= CPU_HAS_SSE; |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
370 } |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
371 if (CPU_haveSSE2()) { |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
372 SDL_CPUFeatures |= CPU_HAS_SSE2; |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
373 } |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
374 if (CPU_haveAltiVec()) { |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
375 SDL_CPUFeatures |= CPU_HAS_ALTIVEC; |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
376 } |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
377 } |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
378 return SDL_CPUFeatures; |
739
22dbf364c017
Added SDL_HasMMX(), SDL_Has3DNow(), SDL_HasSSE() in SDL_cpuinfo.h
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
379 } |
22dbf364c017
Added SDL_HasMMX(), SDL_Has3DNow(), SDL_HasSSE() in SDL_cpuinfo.h
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
380 |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
381 SDL_bool |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
382 SDL_HasRDTSC(void) |
745
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
383 { |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
384 if (SDL_GetCPUFeatures() & CPU_HAS_RDTSC) { |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
385 return SDL_TRUE; |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
386 } |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
387 return SDL_FALSE; |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
388 } |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
389 |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
390 SDL_bool |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
391 SDL_HasMMX(void) |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
392 { |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
393 if (SDL_GetCPUFeatures() & CPU_HAS_MMX) { |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
394 return SDL_TRUE; |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
395 } |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
396 return SDL_FALSE; |
745
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
397 } |
71ee03909f42
Greatly simplified the SDL CPU info code
Sam Lantinga <slouken@libsdl.org>
parents:
739
diff
changeset
|
398 |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
399 SDL_bool |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
400 SDL_HasMMXExt(void) |
739
22dbf364c017
Added SDL_HasMMX(), SDL_Has3DNow(), SDL_HasSSE() in SDL_cpuinfo.h
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
401 { |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
402 if (SDL_GetCPUFeatures() & CPU_HAS_MMXEXT) { |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
403 return SDL_TRUE; |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
404 } |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
405 return SDL_FALSE; |
739
22dbf364c017
Added SDL_HasMMX(), SDL_Has3DNow(), SDL_HasSSE() in SDL_cpuinfo.h
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
406 } |
22dbf364c017
Added SDL_HasMMX(), SDL_Has3DNow(), SDL_HasSSE() in SDL_cpuinfo.h
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
407 |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
408 SDL_bool |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
409 SDL_Has3DNow(void) |
804
b2fda076b02e
*** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents:
796
diff
changeset
|
410 { |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
411 if (SDL_GetCPUFeatures() & CPU_HAS_3DNOW) { |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
412 return SDL_TRUE; |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
413 } |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
414 return SDL_FALSE; |
739
22dbf364c017
Added SDL_HasMMX(), SDL_Has3DNow(), SDL_HasSSE() in SDL_cpuinfo.h
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
415 } |
22dbf364c017
Added SDL_HasMMX(), SDL_Has3DNow(), SDL_HasSSE() in SDL_cpuinfo.h
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
416 |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
417 SDL_bool |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
418 SDL_Has3DNowExt(void) |
804
b2fda076b02e
*** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents:
796
diff
changeset
|
419 { |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
420 if (SDL_GetCPUFeatures() & CPU_HAS_3DNOWEXT) { |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
421 return SDL_TRUE; |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
422 } |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
423 return SDL_FALSE; |
804
b2fda076b02e
*** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents:
796
diff
changeset
|
424 } |
b2fda076b02e
*** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents:
796
diff
changeset
|
425 |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
426 SDL_bool |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
427 SDL_HasSSE(void) |
739
22dbf364c017
Added SDL_HasMMX(), SDL_Has3DNow(), SDL_HasSSE() in SDL_cpuinfo.h
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
428 { |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
429 if (SDL_GetCPUFeatures() & CPU_HAS_SSE) { |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
430 return SDL_TRUE; |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
431 } |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
432 return SDL_FALSE; |
739
22dbf364c017
Added SDL_HasMMX(), SDL_Has3DNow(), SDL_HasSSE() in SDL_cpuinfo.h
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
433 } |
22dbf364c017
Added SDL_HasMMX(), SDL_Has3DNow(), SDL_HasSSE() in SDL_cpuinfo.h
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
434 |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
435 SDL_bool |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
436 SDL_HasSSE2(void) |
804
b2fda076b02e
*** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents:
796
diff
changeset
|
437 { |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
438 if (SDL_GetCPUFeatures() & CPU_HAS_SSE2) { |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
439 return SDL_TRUE; |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
440 } |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
441 return SDL_FALSE; |
804
b2fda076b02e
*** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents:
796
diff
changeset
|
442 } |
b2fda076b02e
*** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents:
796
diff
changeset
|
443 |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
444 SDL_bool |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
445 SDL_HasAltiVec(void) |
778
8ac3f46f9d09
Date: Tue, 6 Jan 2004 12:42:19 +0100
Sam Lantinga <slouken@libsdl.org>
parents:
769
diff
changeset
|
446 { |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
447 if (SDL_GetCPUFeatures() & CPU_HAS_ALTIVEC) { |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
448 return SDL_TRUE; |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
449 } |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
450 return SDL_FALSE; |
778
8ac3f46f9d09
Date: Tue, 6 Jan 2004 12:42:19 +0100
Sam Lantinga <slouken@libsdl.org>
parents:
769
diff
changeset
|
451 } |
8ac3f46f9d09
Date: Tue, 6 Jan 2004 12:42:19 +0100
Sam Lantinga <slouken@libsdl.org>
parents:
769
diff
changeset
|
452 |
739
22dbf364c017
Added SDL_HasMMX(), SDL_Has3DNow(), SDL_HasSSE() in SDL_cpuinfo.h
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
453 #ifdef TEST_MAIN |
22dbf364c017
Added SDL_HasMMX(), SDL_Has3DNow(), SDL_HasSSE() in SDL_cpuinfo.h
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
454 |
22dbf364c017
Added SDL_HasMMX(), SDL_Has3DNow(), SDL_HasSSE() in SDL_cpuinfo.h
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
455 #include <stdio.h> |
22dbf364c017
Added SDL_HasMMX(), SDL_Has3DNow(), SDL_HasSSE() in SDL_cpuinfo.h
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
456 |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
457 int |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
458 main() |
739
22dbf364c017
Added SDL_HasMMX(), SDL_Has3DNow(), SDL_HasSSE() in SDL_cpuinfo.h
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
459 { |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
460 printf("RDTSC: %d\n", SDL_HasRDTSC()); |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
461 printf("MMX: %d\n", SDL_HasMMX()); |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
462 printf("MMXExt: %d\n", SDL_HasMMXExt()); |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
463 printf("3DNow: %d\n", SDL_Has3DNow()); |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
464 printf("3DNowExt: %d\n", SDL_Has3DNowExt()); |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
465 printf("SSE: %d\n", SDL_HasSSE()); |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
466 printf("SSE2: %d\n", SDL_HasSSE2()); |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
467 printf("AltiVec: %d\n", SDL_HasAltiVec()); |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
468 return 0; |
739
22dbf364c017
Added SDL_HasMMX(), SDL_Has3DNow(), SDL_HasSSE() in SDL_cpuinfo.h
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
469 } |
22dbf364c017
Added SDL_HasMMX(), SDL_Has3DNow(), SDL_HasSSE() in SDL_cpuinfo.h
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
470 |
22dbf364c017
Added SDL_HasMMX(), SDL_Has3DNow(), SDL_HasSSE() in SDL_cpuinfo.h
Sam Lantinga <slouken@libsdl.org>
parents:
diff
changeset
|
471 #endif /* TEST_MAIN */ |
1895
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
472 |
c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents:
1864
diff
changeset
|
473 /* vi: set ts=4 sw=4 expandtab: */ |