diff options
author | Jeffrey Walton <noloader@gmail.com> | 2020-04-11 12:37:03 -0400 |
---|---|---|
committer | Jeffrey Walton <noloader@gmail.com> | 2020-04-11 12:37:03 -0400 |
commit | 80953e3fb585832f006bb34d283dc0f61415bb0d (patch) | |
tree | 75c78503ee45495d43dcb48cea8a5185e03ec5e8 /xts.cpp | |
parent | d855d26b56f5651e16ccb3be5d84810628fd2798 (diff) | |
download | cryptopp-git-80953e3fb585832f006bb34d283dc0f61415bb0d.tar.gz |
Add Altivec Xor for XTS mode
Diffstat (limited to 'xts.cpp')
-rw-r--r-- | xts.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
@@ -34,6 +34,10 @@ # endif
#endif
+#if defined(__ALTIVEC__)
+# include "ppc_simd.h"
+#endif
+
ANONYMOUS_NAMESPACE_BEGIN
using namespace CryptoPP;
@@ -76,6 +80,10 @@ inline void XorBuffer(byte *output, const byte *input, const byte *mask, size_t for (size_t i=0; i<count; i+=16)
vst1q_u8(output+i, veorq_u8(vld1q_u8(input+i), vld1q_u8(mask+i)));
+#elif defined(__ALTIVEC__)
+ for (size_t i=0; i<count; i+=16)
+ VecStore(VecXor(VecLoad(input+i), VecLoad(mask+i)), output+i);
+
#else
xorbuf(output, input, mask, count);
#endif
|