Common/Crypto/SHA1: Resolve -Wignored-attributes warnings

See commit 417d1310d22b11d5d724625721b5fec09eda099a for an explanation
on why we do this.
This commit is contained in:
Lioncash 2023-12-12 19:42:14 -05:00
parent bced5fac18
commit dbc792a3ec
1 changed files with 15 additions and 2 deletions

View File

@ -166,7 +166,20 @@ public:
} }
private: private:
using WorkBlock = CyclicArray<__m128i, 4>; struct XmmReg
{
// Allows aliasing attributes to be respected in the
// face of templates.
__m128i data;
XmmReg& operator=(const __m128i& d)
{
data = d;
return *this;
}
operator __m128i() const { return data; }
};
using WorkBlock = CyclicArray<XmmReg, 4>;
ATTRIBUTE_TARGET("ssse3") ATTRIBUTE_TARGET("ssse3")
static inline __m128i byterev_16B(__m128i x) static inline __m128i byterev_16B(__m128i x)
@ -244,7 +257,7 @@ private:
virtual bool HwAccelerated() const override { return true; } virtual bool HwAccelerated() const override { return true; }
std::array<__m128i, 2> state{}; std::array<XmmReg, 2> state{};
}; };
#endif #endif