avoid hard to predict branch (idea by arpi)

Originally committed as revision 5252 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Michael Niedermayer 2006-03-31 16:50:43 +00:00
parent 9296d45d29
commit ac2549b583
1 changed files with 4 additions and 5 deletions

View File

@ -1288,11 +1288,10 @@ static int decode_block(MJpegDecodeContext *s, DCTELEM *block,
code &= 0xf;
UPDATE_CACHE(re, &s->gb)
if ((int32_t)GET_CACHE(re,&s->gb)<0) { //MSB=1
level = NEG_USR32( GET_CACHE(re,&s->gb),code);
} else {
level = - NEG_USR32(~GET_CACHE(re,&s->gb),code);
{
int cache=GET_CACHE(re,gb);
int sign=(~cache)>>31;
level = (NEG_USR32(sign ^ cache,code) ^ sign) + (sign&1) ;
}
LAST_SKIP_BITS(re, &s->gb, code)