Mercurial > mplayer.hg
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. |