changeset 4049:8c1a5ed03a00 libavcodec

another instruction less in decode_significance_x86() -> 1% faster ion P3
author michael
date Fri, 20 Oct 2006 10:00:28 +0000
parents bf6791303fa0
children 2c79a8281cb6
files cabac.h
diffstat 1 files changed, 2 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/cabac.h	Fri Oct 20 08:46:33 2006 +0000
+++ b/cabac.h	Fri Oct 20 10:00:28 2006 +0000
@@ -676,7 +676,7 @@
 static int decode_significance_x86(CABACContext *c, int max_coeff, uint8_t *significant_coeff_ctx_base, int *index){
     void *end= significant_coeff_ctx_base + max_coeff - 1;
     int minusstart= -(int)significant_coeff_ctx_base;
-    int minusindex= -(int)index;
+    int minusindex= 4-(int)index;
     int coeff_count;
     asm volatile(
         "movl "RANGE    "(%3), %%esi            \n\t"
@@ -695,11 +695,11 @@
         "movl %4, %%ecx                         \n\t"
         "addl %1, %%ecx                         \n\t"
         "movl %%ecx, (%%eax)                    \n\t"
-        "addl $4, %%eax                         \n\t"
 
         "test $1, %%edx                         \n\t"
         " jnz 4f                                \n\t"
 
+        "addl $4, %%eax                         \n\t"
         "movl %%eax, %2                         \n\t"
 
         "3:                                     \n\t"
@@ -710,7 +710,6 @@
         "movl %4, %%ecx                         \n\t"
         "addl %1, %%ecx                         \n\t"
         "movl %%ecx, (%%eax)                    \n\t"
-        "addl $4, %%eax                         \n\t"
         "4:                                     \n\t"
         "addl %6, %%eax                         \n\t"
         "shr $2, %%eax                          \n\t"