diff options
author | agl@chromium.org <agl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-11-20 04:25:51 +0000 |
---|---|---|
committer | agl@chromium.org <agl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-11-20 04:25:51 +0000 |
commit | 376658bd026f672b87ed0f08328d37a7313537d7 (patch) | |
tree | 4bffa1e54ac45e344599f30d7b59ae0511540bfa /crypto | |
parent | c761a96231a2c0c91c1885032c0489d96343d51b (diff) | |
download | chromium_src-376658bd026f672b87ed0f08328d37a7313537d7.zip chromium_src-376658bd026f672b87ed0f08328d37a7313537d7.tar.gz chromium_src-376658bd026f672b87ed0f08328d37a7313537d7.tar.bz2 |
crypto: enable NEON optimisations when supported by the platform.
BUG=310768
Review URL: https://codereview.chromium.org/65413008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@236143 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'crypto')
-rw-r--r-- | crypto/crypto.gyp | 3 | ||||
-rw-r--r-- | crypto/openssl_util.cc | 12 |
2 files changed, 15 insertions, 0 deletions
diff --git a/crypto/crypto.gyp b/crypto/crypto.gyp index 2f38aee..fd80fa5 100644 --- a/crypto/crypto.gyp +++ b/crypto/crypto.gyp @@ -75,6 +75,9 @@ ['exclude', 'signature_verifier_nss\.cc$'], ['exclude', 'symmetric_key_nss\.cc$'], ], + 'includes': [ + '../build/android/cpufeatures.gypi', + ], }], [ 'os_bsd==1', { 'link_settings': { diff --git a/crypto/openssl_util.cc b/crypto/openssl_util.cc index 5bc3ce5..34af810 100644 --- a/crypto/openssl_util.cc +++ b/crypto/openssl_util.cc @@ -12,6 +12,11 @@ #include "base/memory/singleton.h" #include "base/strings/string_piece.h" #include "base/synchronization/lock.h" +#include "build/build_config.h" + +#if defined(OS_ANDROID) && defined(ARCH_CPU_ARMEL) +#include <cpu-features.h> +#endif namespace crypto { @@ -49,6 +54,13 @@ class OpenSSLInitSingleton { locks_.push_back(new base::Lock()); CRYPTO_set_locking_callback(LockingCallback); CRYPTO_set_id_callback(CurrentThreadId); + +#if defined(OS_ANDROID) && defined(ARCH_CPU_ARMEL) + const bool has_neon = + (android_getCpuFeatures() & ANDROID_CPU_ARM_FEATURE_NEON) != 0; + if (has_neon) + CRYPTO_set_NEON_capable(1); +#endif } ~OpenSSLInitSingleton() { |