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: Mans Rullgard <mans@mansr.com>
This commit is contained in:
Mans Rullgard 2011-06-20 23:10:26 +01:00
parent 2143d69bdd
commit c5ee740745
2 changed files with 3 additions and 3 deletions

View File

@ -98,7 +98,7 @@ static av_always_inline int get_cabac_inline_x86(CABACContext *c,
"movl %2, %a6(%5) \n\t" "movl %2, %a6(%5) \n\t"
"movl %1, %a7(%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), :"r"(state), "r"(c),
"i"(offsetof(CABACContext, range)), "i"(offsetof(CABACContext, low)), "i"(offsetof(CABACContext, range)), "i"(offsetof(CABACContext, low)),
"i"(offsetof(CABACContext, bytestream)) "i"(offsetof(CABACContext, bytestream))

View File

@ -89,7 +89,7 @@ static int decode_significance_x86(CABACContext *c, int max_coeff,
"movl %5, %a11(%6) \n\t" "movl %5, %a11(%6) \n\t"
"movl %3, %a12(%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"(low), "=&r"(bit), "=&r"(range)
:"r"(c), "m"(minusstart), "m"(end), "m"(minusindex), "m"(last_off), :"r"(c), "m"(minusstart), "m"(end), "m"(minusindex), "m"(last_off),
"i"(offsetof(CABACContext, range)), "i"(offsetof(CABACContext, low)), "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 %5, %a12(%7) \n\t"
"movl %3, %a13(%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"(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_off),
"i"(offsetof(CABACContext, range)), "i"(offsetof(CABACContext, low)), "i"(offsetof(CABACContext, range)), "i"(offsetof(CABACContext, low)),