Mercurial > mplayer.hg
changeset 3146:3164eaa93396
non x86 fix (otherwise we would need #ifdef ARCH_X86 around every if(gCpuCaps.has...))
author | michael |
---|---|
date | Mon, 26 Nov 2001 23:08:48 +0000 |
parents | 78e11396f431 |
children | 5da6e1b6c93e |
files | cpudetect.c cpudetect.h |
diffstat | 2 files changed, 28 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/cpudetect.c Mon Nov 26 21:55:22 2001 +0000 +++ b/cpudetect.c Mon Nov 26 23:08:48 2001 +0000 @@ -1,6 +1,8 @@ #include "config.h" #include "cpudetect.h" +CpuCaps gCpuCaps; + #ifdef ARCH_X86 #include <stdio.h> @@ -22,7 +24,6 @@ /* I believe this code works. However, it has only been used on a PII and PIII */ -CpuCaps gCpuCaps; static void check_os_katmai_support( void ); #if 1 @@ -83,7 +84,9 @@ { unsigned int regs[4]; unsigned int regs2[4]; - + + caps->isX86=1; + bzero(caps, sizeof(*caps)); if (!has_cpuid()) { printf("CPUID not supported!???\n"); @@ -94,7 +97,7 @@ if (regs[0]>=0x00000001) { char *tmpstr; - + do_cpuid(0x00000001, regs2); tmpstr=GetCpuFriendlyName(regs, regs2); @@ -142,7 +145,9 @@ caps->hasSSE=0; caps->hasSSE2 = 0; #endif - +// caps->has3DNow=1; +// caps->hasMMX2 = 0; +// caps->hasMMX = 0; } @@ -166,7 +171,7 @@ } sprintf(vendor,"%.4s%.4s%.4s",®s[1],®s[3],®s[2]); - + for(i=0; i<MAX_VENDORS; i++){ if(!strcmp(cpuvendors[i].string,vendor)){ if(cpuname[i][CPUID_FAMILY][CPUID_MODEL]){ @@ -337,4 +342,17 @@ gCpuCaps.hasSSE=0; #endif /* __linux__ */ } -#endif /* ARCH_X86 */ +#else /* ARCH_X86 */ + +void GetCpuCaps( CpuCaps *caps) +{ + caps->cpuType=0; + caps->hasMMX=0; + caps->hasMMX2=0; + caps->has3DNow=0; + caps->has3DNowExt=0; + caps->hasSSE=0; + caps->hasSSE2=0; + caps->isX86=0; +} +#endif /* !ARCH_X86 */
--- a/cpudetect.h Mon Nov 26 21:55:22 2001 +0000 +++ b/cpudetect.h Mon Nov 26 23:08:48 2001 +0000 @@ -1,4 +1,5 @@ -#ifdef ARCH_X86 +#ifndef CPUDETECT_H +#define CPUDETECT_H #define CPUTYPE_I386 3 #define CPUTYPE_I486 4 @@ -13,6 +14,7 @@ int has3DNowExt; int hasSSE; int hasSSE2; + int isX86; } CpuCaps; extern CpuCaps gCpuCaps; @@ -22,5 +24,5 @@ /* returned value is malloc()'ed so free() it after use */ char *GetCpuFriendlyName(unsigned int regs[], unsigned int regs2[]); -#endif /* ARCH_X86 */ +#endif /* !CPUDETECT_H */