X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=networking%2Ftls_symmetric.h;h=5e0e4b6d86198713a931d083d73dc2bae48dd574;hb=9a4100cf53f75356854ce752374babf8135c3f42;hp=8488b437e69b9aff09378383bf002aafd71fecb8;hpb=f7806f9d8fc889f1d6cd365b69d9d99a4a5a6e26;p=oweals%2Fbusybox.git diff --git a/networking/tls_symmetric.h b/networking/tls_symmetric.h index 8488b437e..5e0e4b6d8 100644 --- a/networking/tls_symmetric.h +++ b/networking/tls_symmetric.h @@ -27,30 +27,32 @@ static ALWAYS_INLINE unsigned ROL(unsigned word, int i) { - if (__builtin_constant_p(i)) //box + if (__builtin_constant_p(i)) { //box // Rotates by constant use fewer registers, // and on many Intel CPUs rotates by %cl take 2 cycles, not 1. - asm ("roll %2,%0" //box + asm ("roll %2,%0" :"=r" (word) :"0" (word),"i" (i)); - else //box - asm ("roll %%cl,%0" + return word; + } //box + asm ("roll %%cl,%0" :"=r" (word) :"0" (word),"c" (i)); - return word; + return word; } static ALWAYS_INLINE unsigned ROR(unsigned word, int i) { - if (__builtin_constant_p(i)) //box - asm ("rorl %2,%0" //box + if (__builtin_constant_p(i)) { //box + asm ("rorl %2,%0" :"=r" (word) :"0" (word),"i" (i)); - else //box - asm ("rorl %%cl,%0" + return word; + } //box + asm ("rorl %%cl,%0" :"=r" (word) :"0" (word),"c" (i)); - return word; + return word; } /******************************************************************************/