diff options
author | Jason Garrett-Glaser <jason@x264.com> | 2011-07-26 19:08:05 -0700 |
---|---|---|
committer | Jason Garrett-Glaser <jason@x264.com> | 2011-07-28 13:06:13 -0700 |
commit | 6c3257654801d525aa61e6fb46022a2a3b12c074 (patch) | |
tree | 8777edbbe56440b243395f4fc5f2534e0d384af8 /libavcodec/x86/h264_i386.h | |
parent | 8dcf5184307f072d55fb29373be05ef8b0fd02df (diff) | |
download | ffmpeg-6c3257654801d525aa61e6fb46022a2a3b12c074.tar.gz |
H.264: optimize CABAC x86 asm for Atom
Diffstat (limited to 'libavcodec/x86/h264_i386.h')
-rw-r--r-- | libavcodec/x86/h264_i386.h | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/libavcodec/x86/h264_i386.h b/libavcodec/x86/h264_i386.h index 9c86210371..0151cd59a8 100644 --- a/libavcodec/x86/h264_i386.h +++ b/libavcodec/x86/h264_i386.h @@ -72,8 +72,7 @@ static int decode_significance_x86(CABACContext *c, int max_coeff, "test $1, %4 \n\t" " jnz 4f \n\t" - "add $4, %0 \n\t" - "mov %0, %2 \n\t" + "add $4, %2 \n\t" "3: \n\t" "add $1, %1 \n\t" @@ -101,7 +100,7 @@ static int decode_significance_x86(CABACContext *c, int max_coeff, static int decode_significance_8x8_x86(CABACContext *c, uint8_t *significant_coeff_ctx_base, - int *index, x86_reg last_off, const uint8_t *sig_off){ + int *index, uint8_t *last_coeff_ctx_base, const uint8_t *sig_off){ int minusindex= 4-(intptr_t)index; int bit; x86_reg coeff_count; @@ -128,7 +127,6 @@ static int decode_significance_8x8_x86(CABACContext *c, " jz 3f \n\t" "movzbl "MANGLE(last_coeff_flag_offset_8x8)"(%k6), %k6\n\t" - "add %9, %6 \n\t" "add %11, %6 \n\t" BRANCHLESS_GET_CABAC("%4", "%7", "(%6)", "%3", @@ -141,8 +139,7 @@ static int decode_significance_8x8_x86(CABACContext *c, "test $1, %4 \n\t" " jnz 4f \n\t" - "add $4, %0 \n\t" - "mov %0, %2 \n\t" + "add $4, %2 \n\t" "3: \n\t" "addl $1, %k6 \n\t" @@ -159,7 +156,7 @@ static int decode_significance_8x8_x86(CABACContext *c, "movl %3, %a13(%7) \n\t" :"=&q"(coeff_count),"+m"(last), "+m"(index), "=&r"(low), "=&r"(bit), "=&r"(range), "=&r"(state) - :"r"(c), "m"(minusindex), "m"(significant_coeff_ctx_base), "m"(sig_off), "m"(last_off), + :"r"(c), "m"(minusindex), "m"(significant_coeff_ctx_base), "m"(sig_off), "m"(last_coeff_ctx_base), "i"(offsetof(CABACContext, range)), "i"(offsetof(CABACContext, low)), "i"(offsetof(CABACContext, bytestream)) : "%"REG_c, "memory" |