Rev 1 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1 | Rev 8 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | /* |
1 | /* |
2 | Simple DirectMedia Layer |
2 | Simple DirectMedia Layer |
3 | Copyright (C) 1997- |
3 | Copyright (C) 1997-2018 Sam Lantinga <slouken@libsdl.org> |
4 | 4 | ||
5 | This software is provided 'as-is', without any express or implied |
5 | This software is provided 'as-is', without any express or implied |
6 | warranty. In no event will the authors be held liable for any damages |
6 | warranty. In no event will the authors be held liable for any damages |
7 | arising from the use of this software. |
7 | arising from the use of this software. |
8 | 8 | ||
Line 49... | Line 49... | ||
49 | #endif /* __clang__ */ |
49 | #endif /* __clang__ */ |
50 | #elif defined(__MINGW64_VERSION_MAJOR) |
50 | #elif defined(__MINGW64_VERSION_MAJOR) |
51 | #include <intrin.h> |
51 | #include <intrin.h> |
52 | #else |
52 | #else |
53 | #ifdef __ALTIVEC__ |
53 | #ifdef __ALTIVEC__ |
54 | #if HAVE_ALTIVEC_H && !defined(__APPLE_ALTIVEC__) |
54 | #if defined(HAVE_ALTIVEC_H) && !defined(__APPLE_ALTIVEC__) && !defined(SDL_DISABLE_ALTIVEC_H) |
55 | #include <altivec.h> |
55 | #include <altivec.h> |
56 | #undef pixel |
56 | #undef pixel |
- | 57 | #undef bool |
|
57 | #endif |
58 | #endif |
58 | #endif |
59 | #endif |
59 |
|
60 | #if defined(__ARM_NEON__) && !defined(SDL_DISABLE_ARM_NEON_H) |
60 | #include < |
61 | #include <arm_neon.h> |
61 | #endif |
62 | #endif |
62 |
|
63 | #if defined(__3dNOW__) && !defined(SDL_DISABLE_MM3DNOW_H) |
63 | #include <mm3dnow.h> |
64 | #include <mm3dnow.h> |
64 | #endif |
65 | #endif |
- | 66 | #if defined(HAVE_IMMINTRIN_H) && !defined(SDL_DISABLE_IMMINTRIN_H) |
|
- | 67 | #include <immintrin.h> |
|
- | 68 | #else |
|
- | 69 | #if defined(__MMX__) && !defined(SDL_DISABLE_MMINTRIN_H) |
|
65 |
|
70 | #include <mmintrin.h> |
- | 71 | #endif |
|
- | 72 | #if defined(__SSE__) && !defined(SDL_DISABLE_XMMINTRIN_H) |
|
66 | #include <xmmintrin.h> |
73 | #include <xmmintrin.h> |
67 | #endif |
74 | #endif |
68 |
|
75 | #if defined(__SSE2__) && !defined(SDL_DISABLE_EMMINTRIN_H) |
69 | #include <emmintrin.h> |
76 | #include <emmintrin.h> |
70 | #endif |
77 | #endif |
71 |
|
78 | #if defined(__SSE3__) && !defined(SDL_DISABLE_PMMINTRIN_H) |
72 | #include <pmmintrin.h> |
79 | #include <pmmintrin.h> |
73 | #endif |
80 | #endif |
- | 81 | #endif /* HAVE_IMMINTRIN_H */ |
|
74 | #endif |
82 | #endif /* compiler version */ |
75 | 83 | ||
76 | #include "begin_code.h" |
84 | #include "begin_code.h" |
77 | /* Set up for C function definitions, even when using C++ */ |
85 | /* Set up for C function definitions, even when using C++ */ |
78 | #ifdef __cplusplus |
86 | #ifdef __cplusplus |
79 | extern "C" { |
87 | extern "C" { |
Line 151... | Line 159... | ||
151 | 159 | ||
152 | /** |
160 | /** |
153 | * This function returns true if the CPU has AVX2 features. |
161 | * This function returns true if the CPU has AVX2 features. |
154 | */ |
162 | */ |
155 | extern DECLSPEC SDL_bool SDLCALL SDL_HasAVX2(void); |
163 | extern DECLSPEC SDL_bool SDLCALL SDL_HasAVX2(void); |
- | 164 | ||
- | 165 | /** |
|
- | 166 | * This function returns true if the CPU has AVX-512F (foundation) features. |
|
- | 167 | */ |
|
- | 168 | extern DECLSPEC SDL_bool SDLCALL SDL_HasAVX512F(void); |
|
156 | 169 | ||
157 | /** |
170 | /** |
158 | * This function returns true if the CPU has NEON (ARM SIMD) features. |
171 | * This function returns true if the CPU has NEON (ARM SIMD) features. |
159 | */ |
172 | */ |
160 | extern DECLSPEC SDL_bool SDLCALL SDL_HasNEON(void); |
173 | extern DECLSPEC SDL_bool SDLCALL SDL_HasNEON(void); |
161 | 174 | ||
162 | /** |
175 | /** |
163 | * This function returns the amount of RAM configured in the system, in MB. |
176 | * This function returns the amount of RAM configured in the system, in MB. |
164 | */ |
177 | */ |
165 | extern DECLSPEC int SDLCALL SDL_GetSystemRAM(void); |
178 | extern DECLSPEC int SDLCALL SDL_GetSystemRAM(void); |
166 | - | ||
167 | 179 | ||
168 | /* Ends C function definitions when using C++ */ |
180 | /* Ends C function definitions when using C++ */ |
169 | #ifdef __cplusplus |
181 | #ifdef __cplusplus |
170 | } |
182 | } |
171 | #endif |
183 | #endif |