Hi,

On Sun, Jul 3, 2011 at 10:24 AM, Mans Rullgard <[email protected]> wrote:
> -#define CORE(i, a, b, c, d) \
> -        t = S[i>>4][i&3];\
> -        a += T[i];\
> -\
> -        if(i<32){\
> -            if(i<16) a += (d ^ (b&(c^d))) + X[      i &15 ];\
> -            else     a += (c ^ (d&(c^b))) + X[ (1+5*i)&15 ];\
> -        }else{\
> -            if(i<48) a += (b^c^d)         + X[ (5+3*i)&15 ];\
> -            else     a += (c^(b|~d))      + X[ (  7*i)&15 ];\
> -        }\
> -        a = b + (( a << t ) | ( a >> (32 - t) ));
> -
> -static void body(uint32_t ABCD[4], uint32_t X[16]){
> -
> +#define CORE(i, a, b, c, d) do {                                        \
> +        t = S[i >> 4][i & 3];                                           \
> +        a += T[i];                                                      \
> +                                                                        \
> +        if (i < 32) {                                                   \
> +            if (i < 16) a += (d ^ (b & (c ^ d))) + X[       i  & 15];   \
> +            else        a += (c ^ (d & (c ^ b))) + X[(1 + 5*i) & 15];   \
> +        } else {                                                        \
> +            if (i < 48) a += (b ^ c ^ d)         + X[(5 + 3*i) & 15];   \
> +            else        a += (c ^ (b | ~d))      + X[(    7*i) & 15];   \
> +        }                                                               \
> +        a = b + (a << t | a >> (32 - t));                               \
> +    } while (0)

Big macros like this are just asking to be converted into proper
static av_always_inline functions.

Ronald
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to