aboutsummaryrefslogtreecommitdiffstats
path: root/alc/cpu_caps.cpp
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2020-05-17 16:23:24 -0700
committerChris Robinson <[email protected]>2020-05-17 16:23:24 -0700
commit400a108eade05d616ed0560024b7fd6f5be5fd1d (patch)
treeef9027b3b2c0aaaea9225a11baa0ff0022c695aa /alc/cpu_caps.cpp
parentc75c96ce2d2f3801c8e28462d529fe999d12db8f (diff)
Also search for asimd for Neon
Diffstat (limited to 'alc/cpu_caps.cpp')
-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