ReactOS 0.4.16-dev-983-g23ad936
isa_available.cpp
Go to the documentation of this file.
1//
2// isa_available.c
3//
4// Copyright (c) 2024 Timo Kreuzer
5//
6// Implementation of __isa_available_init.
7//
8// SPDX-License-Identifier: MIT
9//
10
11#include <isa_availability.h>
12#include <intrin.h>
13#include <windef.h>
14#include <winbase.h>
15
16extern "C" { int __isa_available = 0; }
17
18extern "C"
19int
22{
23#if defined(_M_IX86) || defined(_M_X64)
25 {
27 }
29 {
31 }
33 {
35 }
37 {
39 }
41 {
43 }
44 else
45 {
47 }
48#elif defined(_M_ARM) || defined(_M_ARM64)
49 // CHECKME: Is this correct?
51 {
52#ifdef _M_ARM64
54#else
56#endif
57 }
58 else
59 {
61 }
62#endif
63
64 return 0;
65}
#define __cdecl
Definition: accygwin.h:79
BOOL WINAPI IsProcessorFeaturePresent(IN DWORD ProcessorFeature)
Definition: sysinfo.c:169
@ __ISA_AVAILABLE_SSE2
@ __ISA_AVAILABLE_AVX
@ __ISA_AVAILABLE_SSE42
@ __ISA_AVAILABLE_ARMNT
@ __ISA_AVAILABLE_AVX2
@ __ISA_AVAILABLE_AVX512
@ __ISA_AVAILABLE_X86
@ __ISA_AVAILABLE_NEON_ARM64
@ __ISA_AVAILABLE_NEON
int __isa_available
int __cdecl __isa_available_init(void)
#define PF_SSE4_2_INSTRUCTIONS_AVAILABLE
Definition: ketypes.h:161
#define PF_XMMI64_INSTRUCTIONS_AVAILABLE
Definition: ketypes.h:134
#define PF_ARM_V8_INSTRUCTIONS_AVAILABLE
Definition: ketypes.h:153
#define PF_AVX2_INSTRUCTIONS_AVAILABLE
Definition: ketypes.h:163
#define PF_AVX_INSTRUCTIONS_AVAILABLE
Definition: ketypes.h:162
#define PF_AVX512F_INSTRUCTIONS_AVAILABLE
Definition: ketypes.h:164