Commit 784fde7c authored by Christian Heimes's avatar Christian Heimes

Force 32bit Keccak implementation on SPARC. It look like the Solaris CC...

Force 32bit Keccak implementation on SPARC. It look like the Solaris CC compiler doesn't like the address alignment.
parent ba3e4a0b
...@@ -95,21 +95,27 @@ ...@@ -95,21 +95,27 @@
* *
* *************************************************************************/ * *************************************************************************/
#if SIZEOF_VOID_P == 8 && defined(PY_UINT64_T) #ifdef __sparc
/* 64bit platforms with unsigned int64 */ /* On SPARC with Solaris CC opt64 fails with 'invalid address alignment' */
#define KeccakImplementation 64 #define KeccakOpt 32
#elif SIZEOF_VOID_P == 8
#define KeccakOpt 64
#elif SIZEOF_VOID_P == 4
#define KeccakOpt 32
#endif
#if KeccakOpt == 64 && defined(PY_UINT64_T)
/* 64bit platforms with unsigned int64 */
#define Unrolling 24 #define Unrolling 24
#define UseBebigokimisa #define UseBebigokimisa
typedef PY_UINT64_T UINT64; typedef PY_UINT64_T UINT64;
#elif SIZEOF_VOID_P == 4 && defined(PY_UINT64_T) #elif KeccakOpt == 32 && defined(PY_UINT64_T)
/* 32bit platforms with unsigned int64 */ /* 32bit platforms with unsigned int64 */
#define KeccakImplementation 32
#define Unrolling 2 #define Unrolling 2
#define UseSchedule 3 #define UseSchedule 3
typedef PY_UINT64_T UINT64; typedef PY_UINT64_T UINT64;
#else #else
/* 32 or 64bit platforms without unsigned int64 */ /* 32 or 64bit platforms without unsigned int64 */
#define KeccakImplementation 32
#define Unrolling 2 #define Unrolling 2
#define UseSchedule 3 #define UseSchedule 3
#define UseInterleaveTables #define UseInterleaveTables
...@@ -125,9 +131,9 @@ ...@@ -125,9 +131,9 @@
#include "keccak/KeccakNISTInterface.h" #include "keccak/KeccakNISTInterface.h"
#include "keccak/KeccakNISTInterface.c" #include "keccak/KeccakNISTInterface.c"
#include "keccak/KeccakSponge.c" #include "keccak/KeccakSponge.c"
#if KeccakImplementation == 64 #if KeccakOpt == 64
#include "keccak/KeccakF-1600-opt64.c" #include "keccak/KeccakF-1600-opt64.c"
#elif KeccakImplementation == 32 #elif KeccakOpt == 32
#include "keccak/KeccakF-1600-opt32.c" #include "keccak/KeccakF-1600-opt32.c"
#endif #endif
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment