aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--alc/cpu_caps.cpp17
1 files changed, 15 insertions, 2 deletions
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