cabac: increment jump locations by one in callers of BRANCHLESS_GET_CABAC().

pull/4/head
Ronald S. Bultje 13 years ago
parent 16f6e83f74
commit 448dc42571
  1. 24
      libavcodec/x86/h264_i386.h

@ -46,13 +46,13 @@ static int decode_significance_x86(CABACContext *c, int max_coeff,
int bit;
x86_reg coeff_count;
__asm__ volatile(
"2: \n\t"
"3: \n\t"
BRANCHLESS_GET_CABAC("%4", "(%1)", "%3", "%w3",
"%5", "%k0", "%b0", "%a11(%6)")
"test $1, %4 \n\t"
" jz 3f \n\t"
" jz 4f \n\t"
"add %10, %1 \n\t"
BRANCHLESS_GET_CABAC("%4", "(%1)", "%3", "%w3",
@ -65,19 +65,19 @@ static int decode_significance_x86(CABACContext *c, int max_coeff,
"movl %%ecx, (%0) \n\t"
"test $1, %4 \n\t"
" jnz 4f \n\t"
" jnz 5f \n\t"
"add"OPSIZE" $4, %2 \n\t"
"3: \n\t"
"4: \n\t"
"add $1, %1 \n\t"
"cmp %8, %1 \n\t"
" jb 2b \n\t"
" jb 3b \n\t"
"mov %2, %0 \n\t"
"movl %7, %%ecx \n\t"
"add %1, %%"REG_c" \n\t"
"movl %%ecx, (%0) \n\t"
"4: \n\t"
"5: \n\t"
"add %9, %k0 \n\t"
"shr $2, %k0 \n\t"
: "=&q"(coeff_count), "+r"(significant_coeff_ctx_base), "+m"(index),
@ -99,7 +99,7 @@ static int decode_significance_8x8_x86(CABACContext *c,
x86_reg state;
__asm__ volatile(
"mov %1, %6 \n\t"
"2: \n\t"
"3: \n\t"
"mov %10, %0 \n\t"
"movzbl (%0, %6), %k6 \n\t"
@ -110,7 +110,7 @@ static int decode_significance_8x8_x86(CABACContext *c,
"mov %1, %k6 \n\t"
"test $1, %4 \n\t"
" jz 3f \n\t"
" jz 4f \n\t"
"movzbl "MANGLE(last_coeff_flag_offset_8x8)"(%k6), %k6\n\t"
"add %11, %6 \n\t"
@ -123,18 +123,18 @@ static int decode_significance_8x8_x86(CABACContext *c,
"movl %k6, (%0) \n\t"
"test $1, %4 \n\t"
" jnz 4f \n\t"
" jnz 5f \n\t"
"add"OPSIZE" $4, %2 \n\t"
"3: \n\t"
"4: \n\t"
"addl $1, %k6 \n\t"
"mov %k6, %1 \n\t"
"cmpl $63, %k6 \n\t"
" jb 2b \n\t"
" jb 3b \n\t"
"mov %2, %0 \n\t"
"movl %k6, (%0) \n\t"
"4: \n\t"
"5: \n\t"
"addl %8, %k0 \n\t"
"shr $2, %k0 \n\t"
: "=&q"(coeff_count), "+m"(last), "+m"(index), "+&r"(c->low),

Loading…
Cancel
Save