> +#define rotl32(x,n) \
> +  ((((x) << ((uint16_t)(n))) | ((x) >> (32 - (uint16_t)(n)))) & 0xFFFFFFFF)
> +#define rotr32(x,n) \
> +  ((((x) >> ((uint16_t)(n))) | ((x) << (32 - (uint16_t)(n)))) & 0xFFFFFFFF)
> +#define rotl16(x,n) \
> +  ((((x) << ((uint16_t)(n))) | ((x) >> (16 - (uint16_t)(n)))) & 0xFFFF)
> +#define rotr16(x,n) \
> +  ((((x) >> ((uint16_t)(n))) | ((x) << (16 - (uint16_t)(n)))) & 0xFFFF)

If you don't cast x to uint32_t or uint16_t the compiler won't be able
to recognize the rotate pattern.

Paolo


Reply via email to