Get rid of gettimeofday reimplementation for MinGW, all remotely recent
[mplayer/glamo.git] / cpudetect.h
blobf31bf07dff80a0c3e702ee6126cf99bd2d91447f
1 #ifndef MPLAYER_CPUDETECT_H
2 #define MPLAYER_CPUDETECT_H
4 #include "config.h"
6 #define CPUTYPE_I386 3
7 #define CPUTYPE_I486 4
8 #define CPUTYPE_I586 5
9 #define CPUTYPE_I686 6
11 #if ARCH_X86_64
12 # define REGa rax
13 # define REGb rbx
14 # define REGBP rbp
15 # define REGSP rsp
16 # define REG_a "rax"
17 # define REG_b "rbx"
18 # define REG_c "rcx"
19 # define REG_d "rdx"
20 # define REG_S "rsi"
21 # define REG_D "rdi"
22 # define REG_SP "rsp"
23 # define REG_BP "rbp"
24 #else
25 # define REGa eax
26 # define REGb ebx
27 # define REGBP ebp
28 # define REGSP esp
29 # define REG_a "eax"
30 # define REG_b "ebx"
31 # define REG_c "ecx"
32 # define REG_d "edx"
33 # define REG_S "esi"
34 # define REG_D "edi"
35 # define REG_SP "esp"
36 # define REG_BP "ebp"
37 #endif
39 typedef struct cpucaps_s {
40 int cpuType;
41 int cpuModel;
42 int cpuStepping;
43 int hasMMX;
44 int hasMMX2;
45 int has3DNow;
46 int has3DNowExt;
47 int hasSSE;
48 int hasSSE2;
49 int hasSSE3;
50 int hasSSSE3;
51 int hasSSE4a;
52 int isX86;
53 unsigned cl_size; /* size of cache line */
54 int hasAltiVec;
55 int hasTSC;
56 } CpuCaps;
58 extern CpuCaps gCpuCaps;
60 void GetCpuCaps(CpuCaps *caps);
62 /* returned value is malloc()'ed so free() it after use */
63 char *GetCpuFriendlyName(unsigned int regs[], unsigned int regs2[]);
65 #endif /* MPLAYER_CPUDETECT_H */