diff options
author | Chris Robinson <[email protected]> | 2020-05-17 16:23:24 -0700 |
---|---|---|
committer | Chris Robinson <[email protected]> | 2020-05-17 16:23:24 -0700 |
commit | 400a108eade05d616ed0560024b7fd6f5be5fd1d (patch) | |
tree | ef9027b3b2c0aaaea9225a11baa0ff0022c695aa /alc/cpu_caps.cpp | |
parent | c75c96ce2d2f3801c8e28462d529fe999d12db8f (diff) |
Also search for asimd for Neon
Diffstat (limited to 'alc/cpu_caps.cpp')
-rw-r--r-- | alc/cpu_caps.cpp | 17 |
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 |