From 1f4d5e9f69e84f4d6cd78e31909f547d4d698ed8 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Wed, 11 Oct 2006 17:59:40 +0000 Subject: [PATCH] slightly faster on P3 slightly slower on athlon and probably faster on P4 Originally committed as revision 6663 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/cabac.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/libavcodec/cabac.h b/libavcodec/cabac.h index ba2799311c..372123086a 100644 --- a/libavcodec/cabac.h +++ b/libavcodec/cabac.h @@ -382,10 +382,20 @@ static int get_cabac(CABACContext *c, uint8_t * const state){ "subl %%esi, %%edx \n\t" "cmpl %%edx, %%ebx \n\t" " ja 1f \n\t" + +#if 1 + //athlon:4067 P3:4110 + "lea -0x2000000(%%edx), %%ecx \n\t" + "shr $31, %%ecx \n\t" + "shl %%cl, %%edx \n\t" + "shl %%cl, %%ebx \n\t" +#else + //athlon:4057 P3:4130 "cmp $0x2000000, %%edx \n\t" //FIXME avoidable "setb %%cl \n\t" "shl %%cl, %%edx \n\t" "shl %%cl, %%ebx \n\t" +#endif "movzbl "MANGLE(ff_h264_mps_state)"(%%eax), %%ecx \n\t" "movb %%cl, (%1) \n\t" //eax:state ebx:low, edx:range, esi:RangeLPS