# HG changeset patch # User michael # Date 1240532809 0 # Node ID 54ddf2b7d4bdd9c006e2ee4b0f26b4f10515d433 # Parent 59073f92f0e2ab0f1f4c82d4d850cbc0ca9d2525 Optimize sign handling in get_symbol(). diff -r 59073f92f0e2 -r 54ddf2b7d4bd ffv1.c --- a/ffv1.c Thu Apr 23 23:14:26 2009 +0000 +++ b/ffv1.c Fri Apr 24 00:26:49 2009 +0000 @@ -258,10 +258,8 @@ a += a + get_rac(c, state+22 + i); //22..31 } - if(is_signed && get_rac(c, state+11 + e)) //11..21 - return -a; - else - return a; + e= -(is_signed && get_rac(c, state+11 + e)); //11..21 + return (a^e)-e; } } diff -r 59073f92f0e2 -r 54ddf2b7d4bd snow.c --- a/snow.c Thu Apr 23 23:14:26 2009 +0000 +++ b/snow.c Fri Apr 24 00:26:49 2009 +0000 @@ -665,10 +665,8 @@ a += a + get_rac(c, state+22 + FFMIN(i,9)); //22..31 } - if(is_signed && get_rac(c, state+11 + FFMIN(e,10))) //11..21 - return -a; - else - return a; + e= -(is_signed && get_rac(c, state+11 + FFMIN(e,10))); //11..21 + return (a^e)-e; } }