Commit c5ee7407 authored by Mans Rullgard's avatar Mans Rullgard

x86: cabac: fix register constraints for 32-bit mode

Some operands need to be accessed in byte mode, which restricts the
available registers in 32-bit mode.  Using the 'q' constraint selects
a suitable register.
Signed-off-by: default avatarMans Rullgard <>
parent 2143d69b
......@@ -98,7 +98,7 @@ static av_always_inline int get_cabac_inline_x86(CABACContext *c,
"movl %2, %a6(%5) \n\t"
"movl %1, %a7(%5) \n\t"
:"=&r"(bit), "=&r"(low), "=&r"(range), "=&r"(tmp)
:"=&r"(bit), "=&r"(low), "=&r"(range), "=&q"(tmp)
:"r"(state), "r"(c),
"i"(offsetof(CABACContext, range)), "i"(offsetof(CABACContext, low)),
"i"(offsetof(CABACContext, bytestream))
......@@ -89,7 +89,7 @@ static int decode_significance_x86(CABACContext *c, int max_coeff,
"movl %5, %a11(%6) \n\t"
"movl %3, %a12(%6) \n\t"
:"=&r"(coeff_count), "+r"(significant_coeff_ctx_base), "+m"(index),
:"=&q"(coeff_count), "+r"(significant_coeff_ctx_base), "+m"(index),
"=&r"(low), "=&r"(bit), "=&r"(range)
:"r"(c), "m"(minusstart), "m"(end), "m"(minusindex), "m"(last_off),
"i"(offsetof(CABACContext, range)), "i"(offsetof(CABACContext, low)),
......@@ -157,7 +157,7 @@ static int decode_significance_8x8_x86(CABACContext *c,
"movl %5, %a12(%7) \n\t"
"movl %3, %a13(%7) \n\t"
:"=&r"(coeff_count),"+m"(last), "+m"(index), "=&r"(low), "=&r"(bit),
:"=&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),
"i"(offsetof(CABACContext, range)), "i"(offsetof(CABACContext, low)),
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment