From 400a108eade05d616ed0560024b7fd6f5be5fd1d Mon Sep 17 00:00:00 2001 From: Chris Robinson Date: Sun, 17 May 2020 16:23:24 -0700 Subject: Also search for asimd for Neon --- alc/cpu_caps.cpp | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'alc/cpu_caps.cpp') diff --git a/alc/cpu_caps.cpp b/alc/cpu_caps.cpp index a2719265..a480f77b 100644 --- a/alc/cpu_caps.cpp +++ b/alc/cpu_caps.cpp @@ -129,13 +129,26 @@ void FillCPUCaps(int capfilter) size_t extpos{9}; while((extpos=features.find("neon", extpos+1)) != std::string::npos) { - if((extpos == 0 || std::isspace(features[extpos-1])) && - (extpos+4 == features.length() || std::isspace(features[extpos+4]))) + if(std::isspace(features[extpos-1]) + && (extpos+4 == features.length() || std::isspace(features[extpos+4]))) { caps |= CPU_CAP_NEON; break; } } + if(!(caps&CPU_CAP_NEON)) + { + extpos = 9; + while((extpos=features.find("asimd", extpos+1)) != std::string::npos) + { + if(std::isspace(features[extpos-1]) + && (extpos+5 == features.length() || std::isspace(features[extpos+5]))) + { + caps |= CPU_CAP_NEON; + break; + } + } + } } #endif #endif -- cgit v1.2.3