aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJack Lloyd <[email protected]>2018-11-05 17:28:30 -0500
committerJack Lloyd <[email protected]>2018-11-05 17:28:30 -0500
commit92a1941411de3892ed105e289b41268993f8becf (patch)
treee845e973ca528549c4170aa8ca1668cccc537260 /src
parent25f37bfb46a4d9c5b1f2f02bd5cd4014e45784ad (diff)
Fix for 32-bit ARM
Diffstat (limited to 'src')
-rw-r--r--src/lib/utils/simd/simd_32.h9
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]),