gstreamer/gst/gstcpuid_i386.s
Wim Taymans 8d2a4dfbec Added CPU detection.
Original commit message from CVS:
Added CPU detection.
Added SSE optimisation to mpeg_play
Modified the mpeg2 decoder and gstidct to use cpu detection.
Cleanups in the mpeg1 and mpeg2 decoders.
2000-09-12 18:13:48 +00:00

45 lines
651 B
ArmAsm

.text
.globl gst_cpuid_i386
.type gst_cpuid_i386,@function
gst_cpuid_i386:
pushl %ebp
movl %esp,%ebp
pushl %edi
pushl %ebx
pushl %ecx
pushl %edx
movl 8(%ebp),%eax
cpuid
movl 12(%ebp),%edi
test %edi,%edi
jz L1
movl %eax,(%edi)
L1: movl 16(%ebp),%edi
test %edi,%edi
jz L2
movl %ebx,(%edi)
L2: movl 20(%ebp),%edi
test %edi,%edi
jz L3
movl %ecx,(%edi)
L3: movl 24(%ebp),%edi
test %edi,%edi
jz L4
movl %edx,(%edi)
L4: popl %edx
popl %ecx
popl %ebx
popl %edi
movl %ebp,%esp
popl %ebp
ret
/ doesn't work in user mode (MSRs are privileged)
.globl siddisable
siddisable:
movl 0x119,%ecx
rdmsr
orl 0x200000,%eax
wrmsr
ret