diff options
author | Jack Lloyd <[email protected]> | 2018-11-05 17:28:30 -0500 |
---|---|---|
committer | Jack Lloyd <[email protected]> | 2018-11-05 17:28:30 -0500 |
commit | 92a1941411de3892ed105e289b41268993f8becf (patch) | |
tree | e845e973ca528549c4170aa8ca1668cccc537260 /src | |
parent | 25f37bfb46a4d9c5b1f2f02bd5cd4014e45784ad (diff) |
Fix for 32-bit ARM
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/utils/simd/simd_32.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/lib/utils/simd/simd_32.h b/src/lib/utils/simd/simd_32.h index 16f70ebcc..f9680c195 100644 --- a/src/lib/utils/simd/simd_32.h +++ b/src/lib/utils/simd/simd_32.h @@ -275,6 +275,13 @@ class SIMD_4x32 final #elif defined(BOTAN_SIMD_USE_NEON) + #if defined(BOTAN_TARGET_ARCH_IS_ARM32) + + return SIMD_4x32(vorrq_u32(vshlq_n_u32(m_neon, static_cast<int>(ROT)), + vshrq_n_u32(m_neon, static_cast<int>(32-ROT)))); + + #else + if(ROT == 8) { const uint8_t maskb[16] = { 3,0,1,2, 7,4,5,6, 11,8,9,10, 15,12,13,14 }; @@ -291,6 +298,8 @@ class SIMD_4x32 final vshrq_n_u32(m_neon, static_cast<int>(32-ROT)))); } + #endif + #else return SIMD_4x32(Botan::rotl<ROT>(m_scalar[0]), Botan::rotl<ROT>(m_scalar[1]), |