comparison loader/win32.c @ 2573:9009b6d24296

support newly added PF defs (loader/wine/winnt.h)
author alex
date Tue, 30 Oct 2001 21:48:58 +0000
parents f7ebe1935ffa
children d10f16ef155c
comparison
equal deleted inserted replaced
2572:f2353173d52c 2573:9009b6d24296
724 cachedsi.dwNumberOfProcessors = 1; 724 cachedsi.dwNumberOfProcessors = 1;
725 cachedsi.dwProcessorType = PROCESSOR_INTEL_386; 725 cachedsi.dwProcessorType = PROCESSOR_INTEL_386;
726 cachedsi.dwAllocationGranularity = 0x10000; 726 cachedsi.dwAllocationGranularity = 0x10000;
727 cachedsi.wProcessorLevel = 5; /* pentium */ 727 cachedsi.wProcessorLevel = 5; /* pentium */
728 cachedsi.wProcessorRevision = 0x0101; 728 cachedsi.wProcessorRevision = 0x0101;
729 cachedsi.dwNumberOfProcessors = 1;
730
731 #if 1
732 /* mplayer's way to detect PF's */
733 {
734 #include "../cpudetect.h"
735 extern CpuCaps gCpuCaps;
736
737 if (gCpuCaps.hasMMX)
738 PF[PF_MMX_INSTRUCTIONS_AVAILABLE] = TRUE;
739 if (gCpuCaps.hasSSE)
740 PF[PF_XMMI_INSTRUCTIONS_AVAILABLE] = TRUE;
741 if (gCpuCaps.has3DNow)
742 PF[PF_AMD3D_INSTRUCTIONS_AVAILABLE] = TRUE;
743 }
744 #endif
729 745
730 #if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__svr4__) 746 #if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__svr4__)
731 do_cpuid(1, regs); 747 do_cpuid(1, regs);
732 switch ((regs[0] >> 8) & 0xf) { // cpu family 748 switch ((regs[0] >> 8) & 0xf) { // cpu family
733 case 3: cachedsi.dwProcessorType = PROCESSOR_INTEL_386; 749 case 3: cachedsi.dwProcessorType = PROCESSOR_INTEL_386;
749 cachedsi.wProcessorRevision = regs[0] & 0xf; // stepping 765 cachedsi.wProcessorRevision = regs[0] & 0xf; // stepping
750 if (regs[3] & (1 << 8)) 766 if (regs[3] & (1 << 8))
751 PF[PF_COMPARE_EXCHANGE_DOUBLE] = TRUE; 767 PF[PF_COMPARE_EXCHANGE_DOUBLE] = TRUE;
752 if (regs[3] & (1 << 23)) 768 if (regs[3] & (1 << 23))
753 PF[PF_MMX_INSTRUCTIONS_AVAILABLE] = TRUE; 769 PF[PF_MMX_INSTRUCTIONS_AVAILABLE] = TRUE;
770 if (regs[3] & (1 << 25))
771 PF[PF_XMMI_INSTRUCTIONS_AVAILABLE] = TRUE;
772 if (regs[3] & (1 << 31))
773 PF[PF_AMD3D_INSTRUCTIONS_AVAILABLE] = TRUE;
754 cachedsi.dwNumberOfProcessors=1; 774 cachedsi.dwNumberOfProcessors=1;
755 #else 775 #else
756 { 776 {
757 char buf[20]; 777 char buf[20];
758 char line[200]; 778 char line[200];
862 { 882 {
863 if (strstr(value,"cx8")) 883 if (strstr(value,"cx8"))
864 PF[PF_COMPARE_EXCHANGE_DOUBLE] = TRUE; 884 PF[PF_COMPARE_EXCHANGE_DOUBLE] = TRUE;
865 if (strstr(value,"mmx")) 885 if (strstr(value,"mmx"))
866 PF[PF_MMX_INSTRUCTIONS_AVAILABLE] = TRUE; 886 PF[PF_MMX_INSTRUCTIONS_AVAILABLE] = TRUE;
867 887 if (strstr(value,"tsc"))
888 PF[PF_RDTSC_INSTRUCTION_AVAILABLE] = TRUE;
889 if (strstr(value,"xmm"))
890 PF[PF_XMMI_INSTRUCTIONS_AVAILABLE] = TRUE;
891 if (strstr(value,"3dnow"))
892 PF[PF_AMD3D_INSTRUCTIONS_AVAILABLE] = TRUE;
868 } 893 }
869 } 894 }
870 fclose (f); 895 fclose (f);
871 /* 896 /*
872 * ad hoc fix for smp machines. 897 * ad hoc fix for smp machines.