summaryrefslogtreecommitdiffstats
path: root/xorg/server/module/x86/cpuid_x86.asm
blob: 45b81b090f1c6515657b61f78a62b930ee31c489 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33

SECTION .text

%macro PROC 1
    align 16
    global %1
    %1:
%endmacro

;int
;cpuid_x86(int eax_in, int ecx_in, int *eax, int *ebx, int *ecx, int *edx)

PROC cpuid_x86
    ; save registers
    push ebx
    push ecx
    push edx
    ; cpuid
    mov eax, [esp + 16]
    mov ecx, [esp + 20]
    cpuid
    mov [esp + 24], eax
    mov [esp + 28], ebx
    mov [esp + 32], ecx
    mov [esp + 36], edx
    mov eax, 0
    ; restore registers
    pop edx
    pop ecx
    pop ebx
    ret;
    align 16