gstreamer/gst/gstcpuid_i386.s

46 lines
651 B
ArmAsm
Raw Normal View History

.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