resolve inline warnings

This commit is contained in:
Philippe Teuwen 2020-05-10 14:57:08 +02:00
commit 838d345918
4 changed files with 32 additions and 0 deletions

View file

@ -66,6 +66,9 @@ bool validate_prng_nonce(uint32_t nonce);
#define LF_POLY_EVEN (0x870804)
#define BIT(x, n) ((x) >> (n) & 1)
#define BEBIT(x, n) BIT(x, (n) ^ 24)
#ifdef __OPTIMIZE_SIZE__
int filter(uint32_t const x);
#else
static inline int filter(uint32_t const x) {
uint32_t f;
@ -77,3 +80,4 @@ static inline int filter(uint32_t const x) {
return BIT(0xEC57E80A, f);
}
#endif
#endif

View file

@ -21,6 +21,19 @@
#include "crapto1.h"
#include "parity.h"
#ifdef __OPTIMIZE_SIZE__
int filter(uint32_t const x) {
uint32_t f;
f = 0xf22c0 >> (x & 0xf) & 16;
f |= 0x6c9c0 >> (x >> 4 & 0xf) & 8;
f |= 0x3c8b0 >> (x >> 8 & 0xf) & 4;
f |= 0x1e458 >> (x >> 12 & 0xf) & 2;
f |= 0x0d938 >> (x >> 16 & 0xf) & 1;
return BIT(0xEC57E80A, f);
}
#endif
#define SWAPENDIAN(x)\
(x = (x >> 8 & 0xff00ff) | (x & 0xff00ff) << 8, x = x >> 16 | x << 16)