cpudetect.h
上传用户:yisoukefu
上传日期:2020-08-09
资源大小:39506k
文件大小:1k
源码类别:

其他游戏

开发平台:

Visual C++

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