vp9: change order of operations in adapt_prob().
authorRonald S. Bultje <rsbultje@gmail.com>
Fri, 14 Oct 2016 17:01:27 +0000 (13:01 -0400)
committerMichael Niedermayer <michael@niedermayer.cc>
Mon, 5 Dec 2016 17:29:12 +0000 (18:29 +0100)
commit2dcc0bce3924ebc96ed7f4956b007d4b84a99750
tree510ecc59c3f69e910e4923ee45198dc2c1dc2368
parent0e3dc45ce81f9c9db5a6a6e2df96670164e82dec
vp9: change order of operations in adapt_prob().

This is intended to workaround bug "665 Integer Divide Instruction May
Cause Unpredictable Behavior" on some early AMD CPUs, which causes a
div-by-zero in this codepath, such as reported in Mozilla bug #1293996.

Note that this isn't guaranteed to fix the bug, since a compiler is free
to reorder instructions that don't depend on each other. However, it
appears to fix the bug in Firefox, and a similar patch was applied to
libvpx also (see Chrome bug #599899).

(cherry picked from commit be885da3427c5d9a6fa68229d16318afffe67193)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
libavcodec/vp9.c