diff options
Diffstat (limited to 'c_src')
-rw-r--r-- | c_src/esdl2.h | 4 | ||||
-rw-r--r-- | c_src/sdl_cpu_info.c | 26 |
2 files changed, 26 insertions, 4 deletions
diff --git a/c_src/esdl2.h b/c_src/esdl2.h index 2993549..5a1ec99 100644 --- a/c_src/esdl2.h +++ b/c_src/esdl2.h @@ -186,9 +186,11 @@ F(get_cpu_count, 0) \ F(get_system_ram, 0) \ F(has_3dnow, 0) \ - F(has_avx, 0) \ F(has_altivec, 0) \ + F(has_avx, 0) \ + F(has_avx2, 0) \ F(has_mmx, 0) \ + F(has_neon, 0) \ F(has_rdtsc, 0) \ F(has_sse, 0) \ F(has_sse2, 0) \ diff --git a/c_src/sdl_cpu_info.c b/c_src/sdl_cpu_info.c index 6285cfe..c616891 100644 --- a/c_src/sdl_cpu_info.c +++ b/c_src/sdl_cpu_info.c @@ -45,6 +45,16 @@ NIF_FUNCTION(has_3dnow) return atom_false; } +// has_altivec + +NIF_FUNCTION(has_altivec) +{ + if (SDL_HasAltiVec()) + return atom_true; + + return atom_false; +} + // has_avx NIF_FUNCTION(has_avx) @@ -55,11 +65,11 @@ NIF_FUNCTION(has_avx) return atom_false; } -// has_altivec +// has_avx2 -NIF_FUNCTION(has_altivec) +NIF_FUNCTION(has_avx2) { - if (SDL_HasAltiVec()) + if (SDL_HasAVX2()) return atom_true; return atom_false; @@ -75,6 +85,16 @@ NIF_FUNCTION(has_mmx) return atom_false; } +// has_neon + +NIF_FUNCTION(has_neon) +{ + if (SDL_HasNEON()) + return atom_true; + + return atom_false; +} + // has_rdtsc NIF_FUNCTION(has_rdtsc) |