[FFmpeg-devel] [PATCH] DES en-/decryption
    Reimar Döffinger 
    Reimar.Doeffinger
       
    Thu Oct 18 12:55:38 CEST 2007
    
    
  
Hello,
On Sun, Oct 14, 2007 at 11:40:43PM +0200, Michael Niedermayer wrote:
> > +        in = (in << 32) | (in >> 32);
> > +        in ^= f_res;
> > +    }
> 
> maybe
> 
> for (i = 0; i < 8; i++) {
>     in ^= f_func(in    , K[decrypt ? 15 - i : i]) << 32;
>     in ^= f_func(in>>32, K[decrypt ? 15 - i : i]);
> }
> 
> would be faster/smaller? maybe not ...
I tried with
>     for (i = 0; i < 16; i++) {
>         in ^= (uint64_t)f_func(in      , K[decrypt ^ i]) << 32;
>         i++;
>         in ^=           f_func(in >> 32, K[decrypt ^ i]);
> }
And it is almost 1% slower.
> > +    in = (in << 32) | (in >> 32);
> > +    // reverse shuffle used to ease hardware implementations
> > +    in = shuffle_inv(in, IP_shuffle, sizeof(IP_shuffle));
> 
> if the inv table is split off and shuffle is used than the 32bit swap can
> be mergeed into the table
That saves one single instruction per 8 bytes of data, that seems an
(effort + obfuscation) / speedup ratio is not worth it by far...
Actually, I'm almost sure it saves nothing at all on x86_32 when
shuffle_inv is inlined.
Greetings,
Reimar D?ffinger
    
    
More information about the ffmpeg-devel
mailing list