diff options
Diffstat (limited to 'mp3lib/d_cpu.s')
-rw-r--r-- | mp3lib/d_cpu.s | 156 |
1 files changed, 0 insertions, 156 deletions
diff --git a/mp3lib/d_cpu.s b/mp3lib/d_cpu.s deleted file mode 100644 index 5b6988bee1..0000000000 --- a/mp3lib/d_cpu.s +++ /dev/null @@ -1,156 +0,0 @@ - -/ --------------------------------------------------------------------------- -/ Cpu function detect by Pontscho/fresh!mindworkz (c) 2000 - 2000 -/ 3dnow-dsp detection by Nick Kurshev (C) 2001 -/ --------------------------------------------------------------------------- - -.text - -.globl CpuDetect -.globl ipentium -.globl a3dnow -.globl isse - -/ --------------------------------------------------------------------------- -/ in C: unsigned long CpuDetect( void ); -/ return: cpu ident number. -/ --------------------------------------------------------------------------- -CpuDetect: - pushl %ebx - pushl %ecx - pushl %edx - - pushfl - popl %eax - movl %eax,%ebx - xorl $0x00200000,%eax - pushl %eax - popfl - pushfl - popl %eax - cmpl %eax,%ebx - jz no_cpuid_cpudetect - - movl $1,%eax - cpuid - - jmp exit_cpudetect -no_cpuid_cpudetect: - xorl %eax,%eax -exit_cpudetect: - - popl %edx - popl %ecx - popl %ebx - ret - -/ --------------------------------------------------------------------------- -/ in C: unsigled long ipentium( void ); -/ return: 0 if this processor i386 or i486 -/ 1 otherwise -/ 3 if this cpu supports mmx -/ --------------------------------------------------------------------------- -ipentium: - pushl %ebx - pushl %ecx - pushl %edx - pushfl - popl %eax - movl %eax,%ebx - xorl $0x00200000,%eax - pushl %eax - popfl - pushfl - popl %eax - cmpl %eax,%ebx - jz no_cpuid - movl $1,%eax - cpuid - movl %eax, %ecx - xorl %eax, %eax - shrl $8,%ecx - cmpl $5,%ecx - jb exit - incl %eax - test $0x00800000, %edx - jz exit - orl $2, %eax - jmp exit -no_cpuid: - xorl %eax,%eax -exit: - popl %edx - popl %ecx - popl %ebx - ret - -/ --------------------------------------------------------------------------- -/ in C: unsigned long a3dnow( void ); -/ return: 0 if this processor does not support 3dnow! -/ 1 otherwise -/ 3 if this cpu supports 3dnow-dsp extension -/ --------------------------------------------------------------------------- -a3dnow: - pushl %ebx - pushl %edx - pushl %ecx - - - call ipentium - testl %eax,%eax - jz exit2 - - movl $0x80000000,%eax - cpuid - cmpl $0x80000000,%eax - jbe no3dnow - movl $0x80000001,%eax - cpuid - xorl %eax,%eax - testl $0x80000000,%edx - jz no3dnow -/// eax=1 - K6 3DNow! - inc %eax - testl $0x40000000,%edx - jz exit2 -/// eax=2 - K7 3DNowEx! - orl $2, %eax - jmp exit2 -no3dnow: - xorl %eax,%eax -exit2: - - popl %ecx - popl %edx - popl %ebx - ret - -/ --------------------------------------------------------------------------- -/ in C: unsigned long isse( void ); -/ return: 0 if this processor does not support sse -/ 1 otherwise -/ 3 if this cpu supports sse2 extension -/ --------------------------------------------------------------------------- -isse: - pushl %ebx - pushl %edx - pushl %ecx - - call ipentium - testl %eax,%eax - jz exit3 - - movl $1,%eax - cpuid - xorl %eax, %eax - testl $0x02000000,%edx - jz exit3 - incl %eax - testl $0x04000000,%edx - jz exit3 - orl $2, %eax -exit3: - popl %ecx - popl %edx - popl %ebx - ret |