summaryrefslogtreecommitdiff
path: root/libavcodec/cabac.h
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2006-10-11 16:11:41 +0000
committerMichael Niedermayer <michaelni@gmx.at>2006-10-11 16:11:41 +0000
commitb99f3cabeddf98264fd73fd6757255220651ce62 (patch)
treed92845f057b363fda60cb80164f7c82ede014047 /libavcodec/cabac.h
parentd17faef011c99e92a88f70d22eb2bbc9d4aa1f2c (diff)
write cabac low and range variables as early as possible to prevent stalls from reading them before they where written, the P4 is said to disslike that alot, on P3 its 2% faster (START/STOP_TIMER over decode_residual)
Originally committed as revision 6657 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/cabac.h')
-rw-r--r--libavcodec/cabac.h7
1 files changed, 4 insertions, 3 deletions
diff --git a/libavcodec/cabac.h b/libavcodec/cabac.h
index c852aa539d..473e7cf84a 100644
--- a/libavcodec/cabac.h
+++ b/libavcodec/cabac.h
@@ -478,8 +478,10 @@ static int get_cabac(CABACContext *c, uint8_t * const state){
"shr $19, %%esi \n\t"
"movzbl " MANGLE(ff_h264_norm_shift) "(%%esi), %%ecx \n\t"
- "shll %%cl, %%ebx \n\t"
"shll %%cl, %%edx \n\t"
+ "movl %%edx, "RANGE "(%2) \n\t"
+ "shll %%cl, %%ebx \n\t"
+ "movl %%ebx, "LOW "(%2) \n\t"
"test %%bx, %%bx \n\t"
" jnz 1f \n\t"
@@ -500,9 +502,8 @@ static int get_cabac(CABACContext *c, uint8_t * const state){
"shll %%cl , %%esi \n\t"
"addl %%esi, %%ebx \n\t"
- "1: \n\t"
- "movl %%edx, "RANGE "(%2) \n\t"
"movl %%ebx, "LOW "(%2) \n\t"
+ "1: \n\t"
:"=&a"(bit)
:"r"(state), "r"(c)
: "%ecx", "%ebx", "%edx", "%esi"