mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
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
This commit is contained in:
parent
d17faef011
commit
b99f3cabed
@ -478,8 +478,10 @@ static int get_cabac(CABACContext *c, uint8_t * const state){
|
|||||||
|
|
||||||
"shr $19, %%esi \n\t"
|
"shr $19, %%esi \n\t"
|
||||||
"movzbl " MANGLE(ff_h264_norm_shift) "(%%esi), %%ecx \n\t"
|
"movzbl " MANGLE(ff_h264_norm_shift) "(%%esi), %%ecx \n\t"
|
||||||
"shll %%cl, %%ebx \n\t"
|
|
||||||
"shll %%cl, %%edx \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"
|
"test %%bx, %%bx \n\t"
|
||||||
" jnz 1f \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"
|
"shll %%cl , %%esi \n\t"
|
||||||
"addl %%esi, %%ebx \n\t"
|
"addl %%esi, %%ebx \n\t"
|
||||||
"1: \n\t"
|
|
||||||
"movl %%edx, "RANGE "(%2) \n\t"
|
|
||||||
"movl %%ebx, "LOW "(%2) \n\t"
|
"movl %%ebx, "LOW "(%2) \n\t"
|
||||||
|
"1: \n\t"
|
||||||
:"=&a"(bit)
|
:"=&a"(bit)
|
||||||
:"r"(state), "r"(c)
|
:"r"(state), "r"(c)
|
||||||
: "%ecx", "%ebx", "%edx", "%esi"
|
: "%ecx", "%ebx", "%edx", "%esi"
|
||||||
|
Loading…
Reference in New Issue
Block a user