Commit 36d6b545 authored by Jason Garrett-Glaser's avatar Jason Garrett-Glaser

CMOV-ify vp56 arithcoder

This incantation causes gcc 4.3 to generate cmov on x86, a vastly better option
than a completely unpredictable branch.
Hopefully this carries over to newer versions and other CPUs with conditionals.
~5 cycles saved per call on a Core i7.

Originally committed as revision 23921 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent 2e6ed48d
......@@ -199,12 +199,8 @@ static inline int vp56_rac_get_prob(VP56RangeCoder *c, uint8_t prob)
int bit = c->code_word >= low_shift;
int shift;
if (bit) {
c->high -= low;
c->code_word -= low_shift;
} else {
c->high = low;
}
c->high = bit ? c->high - low : low;
c->code_word = bit ? c->code_word - low_shift : c->code_word;
/* normalize */
shift = ff_h264_norm_shift[c->high] - 1;
......
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