From 97ff757a74c95b6404b38815cd81b6bf1a7447a3 Mon Sep 17 00:00:00 2001 From: Shawn Hoffman Date: Sat, 30 Jul 2022 12:06:21 -0700 Subject: [PATCH] SHA1/arm64: fix casting warning on certain gcc --- Source/Core/Common/Crypto/SHA1.cpp | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/Source/Core/Common/Crypto/SHA1.cpp b/Source/Core/Common/Crypto/SHA1.cpp index 10bdb59741..9789818f13 100644 --- a/Source/Core/Common/Crypto/SHA1.cpp +++ b/Source/Core/Common/Crypto/SHA1.cpp @@ -287,12 +287,6 @@ private: u32 e{}; }; - static inline uint32x4_t byterev_16B(uint32x4_t x) - { - // Just rev32 with casting wrappers - return vreinterpretq_u32_u8(vrev32q_u8(vreinterpretq_u8_u32(x))); - } - TARGET_ARMV8_SHA1 static inline uint32x4_t MsgSchedule(WorkBlock* wblock, size_t i) { @@ -330,7 +324,7 @@ private: { WorkBlock w; for (size_t i = 0; i < w.size(); i++) - w[i] = byterev_16B(vld1q_u8(&msg[sizeof(uint32x4_t) * i])); + w[i] = vreinterpretq_u32_u8(vrev32q_u8(vld1q_u8(&msg[sizeof(uint32x4_t) * i]))); std::array states{state}; @@ -363,7 +357,7 @@ private: virtual Digest GetDigest() override { Digest digest; - vst1q_u8(&digest[0], byterev_16B(state.abcd)); + vst1q_u8(&digest[0], vrev32q_u8(vreinterpretq_u8_u32(state.abcd))); u32 e = Common::FromBigEndian(state.e); std::memcpy(&digest[sizeof(state.abcd)], &e, sizeof(e)); return digest;