mirror of
https://github.com/shadps4-emu/ext-cryptopp.git
synced 2025-02-17 03:48:38 +00:00
Fix TestAltivecOps on AIX
This commit is contained in:
parent
0b348fe4be
commit
92808945c1
@ -1362,9 +1362,9 @@ inline T VecSwapWords(const T vec)
|
|||||||
template <class T>
|
template <class T>
|
||||||
inline T VecGetLow(const T val)
|
inline T VecGetLow(const T val)
|
||||||
{
|
{
|
||||||
#if (CRYPTOPP_BIG_ENDIAN)
|
#if (CRYPTOPP_BIG_ENDIAN) && (_ARCH_PWR8)
|
||||||
const T zero = {0};
|
const T zero = {0};
|
||||||
return VecMergeLo(zero, val);
|
return (T)VecMergeLo((uint64x2_p)zero, (uint64x2_p)val);
|
||||||
#else
|
#else
|
||||||
return VecShiftRightOctet<8>(VecShiftLeftOctet<8>(val));
|
return VecShiftRightOctet<8>(VecShiftLeftOctet<8>(val));
|
||||||
#endif
|
#endif
|
||||||
@ -1384,9 +1384,9 @@ inline T VecGetLow(const T val)
|
|||||||
template <class T>
|
template <class T>
|
||||||
inline T VecGetHigh(const T val)
|
inline T VecGetHigh(const T val)
|
||||||
{
|
{
|
||||||
#if (CRYPTOPP_BIG_ENDIAN)
|
#if (CRYPTOPP_BIG_ENDIAN) && (_ARCH_PWR8)
|
||||||
const T zero = {0};
|
const T zero = {0};
|
||||||
return VecMergeHi(zero, val);
|
return (T)VecMergeHi((uint64x2_p)zero, (uint64x2_p)val);
|
||||||
#else
|
#else
|
||||||
return VecShiftRightOctet<8>(val);
|
return VecShiftRightOctet<8>(val);
|
||||||
#endif
|
#endif
|
||||||
|
22
validat1.cpp
22
validat1.cpp
@ -1085,9 +1085,9 @@ bool TestAltivecOps()
|
|||||||
|
|
||||||
CRYPTOPP_ALIGN_DATA(16)
|
CRYPTOPP_ALIGN_DATA(16)
|
||||||
byte dest[20], src[20] = {23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4};
|
byte dest[20], src[20] = {23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4};
|
||||||
const byte st1[16] ={22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7};
|
const byte st1[16] = {22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7};
|
||||||
const byte st2[16] ={21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6};
|
const byte st2[16] = {21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6};
|
||||||
const byte st3[16] ={20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5};
|
const byte st3[16] = {20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5};
|
||||||
|
|
||||||
VecStore(VecLoad(src), dest);
|
VecStore(VecLoad(src), dest);
|
||||||
pass1 = (0 == std::memcmp(src, dest, 16)) && pass1;
|
pass1 = (0 == std::memcmp(src, dest, 16)) && pass1;
|
||||||
@ -1187,12 +1187,16 @@ bool TestAltivecOps()
|
|||||||
//********** Extraction **********//
|
//********** Extraction **********//
|
||||||
bool pass3=true;
|
bool pass3=true;
|
||||||
|
|
||||||
uint8x16_p ex1 = {0x1f,0x1e,0x1d,0x1c, 0x1b,0x1a,0x19,0x18,
|
const byte bex1[] = {0x1f,0x1e,0x1d,0x1c, 0x1b,0x1a,0x19,0x18,
|
||||||
0x17,0x16,0x15,0x14, 0x13,0x12,0x11,0x10};
|
0x17,0x16,0x15,0x14, 0x13,0x12,0x11,0x10};
|
||||||
uint8x16_p ex2 = {0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,
|
const byte bex2[] = {0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,
|
||||||
0x17,0x16,0x15,0x14, 0x13,0x12,0x11,0x10};
|
0x17,0x16,0x15,0x14, 0x13,0x12,0x11,0x10};
|
||||||
uint8x16_p ex3 = {0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,
|
const byte bex3[] = {0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,
|
||||||
0x1f,0x1e,0x1d,0x1c, 0x1b,0x1a,0x19,0x18};
|
0x1f,0x1e,0x1d,0x1c, 0x1b,0x1a,0x19,0x18};
|
||||||
|
|
||||||
|
const uint8x16_p ex1 = (uint8x16_p)VecLoad(bex1);
|
||||||
|
const uint8x16_p ex2 = (uint8x16_p)VecLoad(bex2);
|
||||||
|
const uint8x16_p ex3 = (uint8x16_p)VecLoad(bex3);
|
||||||
|
|
||||||
pass3 = VecEqual(ex2, VecGetLow(ex1)) && pass3;
|
pass3 = VecEqual(ex2, VecGetLow(ex1)) && pass3;
|
||||||
CRYPTOPP_ASSERT(pass3);
|
CRYPTOPP_ASSERT(pass3);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user