Mercurial > foo_out_sdl
comparison foosdk/sdk/pfc/cpuid.h @ 1:20d02a178406 default tip
*: check in everything else
yay
| author | Paper <paper@tflc.us> |
|---|---|
| date | Mon, 05 Jan 2026 02:15:46 -0500 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 0:e9bb126753e7 | 1:20d02a178406 |
|---|---|
| 1 #pragma once | |
| 2 | |
| 3 // CPUID stuff supported only on MSVC for now, irrelevant for non x86 | |
| 4 #if defined(_MSC_VER) && (defined(_M_IX86) || defined(_M_X64)) | |
| 5 #define PFC_HAVE_CPUID 1 | |
| 6 namespace pfc { | |
| 7 enum { | |
| 8 CPU_HAVE_SSE = 1 << 2, | |
| 9 CPU_HAVE_SSE2 = 1 << 3, | |
| 10 CPU_HAVE_SSE3 = 1 << 4, | |
| 11 CPU_HAVE_SSSE3 = 1 << 5, | |
| 12 CPU_HAVE_SSE41 = 1 << 6, | |
| 13 CPU_HAVE_SSE42 = 1 << 7, | |
| 14 CPU_HAVE_AVX = 1 << 8, | |
| 15 }; | |
| 16 | |
| 17 bool query_cpu_feature_set(unsigned p_value); | |
| 18 }; | |
| 19 #endif | |
| 20 | |
| 21 #ifndef PFC_HAVE_CPUID | |
| 22 #define PFC_HAVE_CPUID 0 | |
| 23 #endif | |
| 24 | |
| 25 namespace pfc { | |
| 26 const char* cpuArch(); | |
| 27 } | |
| 28 | |
| 29 #ifdef _M_ARM64EC | |
| 30 #define PFC_CPU_ARCH "ARM64EC" | |
| 31 #elif defined(_M_X64) || defined(__x86_64__) | |
| 32 #define PFC_CPU_ARCH "x64" | |
| 33 #elif defined(_M_IX86) || defined(__i386__) | |
| 34 #define PFC_CPU_ARCH "x86" | |
| 35 #elif defined(_M_ARM64) || defined(__aarch64__) | |
| 36 #define PFC_CPU_ARCH "ARM64" | |
| 37 #elif defined(_M_ARM) || defined(__arm__) | |
| 38 #define PFC_CPU_ARCH "ARM" | |
| 39 #endif |
