mirror of
https://github.com/shadps4-emu/ext-cryptopp.git
synced 2024-11-27 11:50:29 +00:00
Fix ChaCha NEON compile with MSVC compiler (GH #776)
This commit is contained in:
parent
8baa2f7a27
commit
b70bc4865f
@ -70,6 +70,15 @@ ANONYMOUS_NAMESPACE_BEGIN
|
||||
|
||||
// ***************************** NEON ***************************** //
|
||||
|
||||
// Thanks to Peter Cordes, https://stackoverflow.com/q/54016821/608639
|
||||
#if (CRYPTOPP_ARM_NEON_AVAILABLE)
|
||||
# if defined(_MSC_VER)
|
||||
# define PACK32x4(w,x,y,z) { ((w) + (word64(x) << 32)), ((y) + (word64(z) << 32)) }
|
||||
# else
|
||||
# define PACK32x4(w,x,y,z) { (w), (x), (y), (z) }
|
||||
# endif
|
||||
#endif // Microsoft workaround
|
||||
|
||||
#if (CRYPTOPP_ARM_NEON_AVAILABLE)
|
||||
|
||||
template <unsigned int R>
|
||||
@ -303,7 +312,9 @@ void ChaCha_OperateKeystream_NEON(const word32 *state, const byte* input, byte *
|
||||
const uint32x4_t state3 = vld1q_u32(state + 3*4);
|
||||
|
||||
const uint32x4_t CTRS[3] = {
|
||||
{1,0,0,0}, {2,0,0,0}, {3,0,0,0}
|
||||
PACK32x4(1,0,0,0),
|
||||
PACK32x4(2,0,0,0),
|
||||
PACK32x4(3,0,0,0)
|
||||
};
|
||||
|
||||
uint32x4_t r0_0 = state0;
|
||||
|
Loading…
Reference in New Issue
Block a user