diff options
author | lloyd <[email protected]> | 2011-04-15 16:46:22 +0000 |
---|---|---|
committer | lloyd <[email protected]> | 2011-04-15 16:46:22 +0000 |
commit | 36bb7410ebbbb77667ad56552898b87d16fdf77f (patch) | |
tree | 14ed974e642e8746e6664947b24e6f6574c18dc5 /src/block | |
parent | b375273d339022b96596e83c63dfae627d6663a8 (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.cpp | 14 |
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) |