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