.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