29 #ifndef AVCODEC_X86_H264_I386_H
30 #define AVCODEC_X86_H264_I386_H
39 #if HAVE_7REGS && !defined(BROKEN_RELOCATIONS)
40 static int decode_significance_x86(
CABACContext *c,
int max_coeff,
41 uint8_t *significant_coeff_ctx_base,
43 void *end= significant_coeff_ctx_base + max_coeff - 1;
44 int minusstart= -(intptr_t)significant_coeff_ctx_base;
45 int minusindex= 4-(intptr_t)index;
52 "%w3",
"%5",
"%k0",
"%b0",
"%6")
59 "%w3",
"%5",
"%k0",
"%b0",
"%6")
64 "add %1, %%"REG_c
" \n\t"
65 "movl %%ecx, (%0) \n\t"
70 "add"OPSIZE
" $4, %2 \n\t"
78 "add %1, %%"REG_c
" \n\t"
79 "movl %%ecx, (%0) \n\t"
83 :
"=&q"(coeff_count),
"+r"(significant_coeff_ctx_base),
"+m"(
index),
84 "+&r"(c->
low),
"=&r"(bit),
"+&r"(c->
range),
86 :
"m"(minusstart),
"m"(end),
"m"(minusindex),
"m"(last_off)
93 uint8_t *significant_coeff_ctx_base,
94 int *index, uint8_t *last_coeff_ctx_base,
const uint8_t *sig_off){
95 int minusindex= 4-(intptr_t)index;
105 "movzbl (%0, %6), %k6 \n\t"
109 "%w3",
"%5",
"%k0",
"%b0",
"%7")
115 "movzbl "MANGLE(last_coeff_flag_offset_8x8)
"(%k6), %k6\n\t"
119 "%w3",
"%5",
"%k0",
"%b0",
"%7")
123 "movl %k6, (%0) \n\t"
128 "add"OPSIZE
" $4, %2 \n\t"
136 "movl %k6, (%0) \n\t"
140 :
"=&q"(coeff_count),
"+m"(last),
"+m"(
index),
"+&r"(c->
low),
"=&r"(bit),
142 :
"m"(minusindex),
"m"(significant_coeff_ctx_base),
"m"(sig_off),
"m"(last_coeff_ctx_base)