aboutsummaryrefslogtreecommitdiffstats
path: root/src/block
diff options
context:
space:
mode:
authorlloyd <[email protected]>2011-04-15 16:46:22 +0000
committerlloyd <[email protected]>2011-04-15 16:46:22 +0000
commit36bb7410ebbbb77667ad56552898b87d16fdf77f (patch)
tree14ed974e642e8746e6664947b24e6f6574c18dc5 /src/block
parentb375273d339022b96596e83c63dfae627d6663a8 (diff)
Fix location of online docs in readme
Some fixes for the Windows installer config Remove the SIMD rotate overloads; VC 2010 does not like passing a __m128i by value, which is required to match the template overload for the regular rotates. Could change it to a const reference, but I would worry this would inhibit compiler optimizations. Only used in one place (Noekeon), so just use the long expressions there.
Diffstat (limited to 'src/block')
-rw-r--r--src/block/noekeon_simd/noekeon_simd.cpp14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/block/noekeon_simd/noekeon_simd.cpp b/src/block/noekeon_simd/noekeon_simd.cpp
index 97158593a..b2beafc82 100644
--- a/src/block/noekeon_simd/noekeon_simd.cpp
+++ b/src/block/noekeon_simd/noekeon_simd.cpp
@@ -16,7 +16,12 @@ namespace Botan {
#define NOK_SIMD_THETA(A0, A1, A2, A3, K0, K1, K2, K3) \
do { \
SIMD_32 T = A0 ^ A2; \
- T ^= rotate_left(T, 8) ^ rotate_right(T, 8); \
+ SIMD_32 T_l8 = T; \
+ SIMD_32 T_r8 = T; \
+ T_l8.rotate_left(8); \
+ T_r8.rotate_right(8); \
+ T ^= T_l8; \
+ T ^= T_r8; \
A1 ^= T; \
A3 ^= T; \
\
@@ -26,7 +31,12 @@ namespace Botan {
A3 ^= K3; \
\
T = A1 ^ A3; \
- T ^= rotate_left(T, 8) ^ rotate_right(T, 8); \
+ T_l8 = T; \
+ T_r8 = T; \
+ T_l8.rotate_left(8); \
+ T_r8.rotate_right(8); \
+ T ^= T_l8; \
+ T ^= T_r8; \
A0 ^= T; \
A2 ^= T; \
} while(0)