> +#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