]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/cabac.h
write cabac low and range variables as early as possible to prevent stalls from readi...
[ffmpeg] / libavcodec / cabac.h
index c852aa539df9531d26f3c0ac278b254c2e82910f..473e7cf84a314f16e1e3445d5e4c329d3d168cbe 100644 (file)
@@ -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"