|
|
|
@ -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), |
|
|
|
|