mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-14 13:21:28 +00:00
46 lines
651 B
ArmAsm
46 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
|
||
|
|