mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2024-12-17 04:54:55 +00:00
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:
parent
2143d69bdd
commit
c5ee740745
@ -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)),
|
||||
|
Loading…
Reference in New Issue
Block a user