mmx: don't pack and unpack src unnecessarily
authorMatt Turner <mattst88@gmail.com>
Fri, 24 Feb 2012 20:23:09 +0000 (15:23 -0500)
committerMatt Turner <mattst88@gmail.com>
Fri, 27 Apr 2012 17:35:31 +0000 (13:35 -0400)
commit6d29b7d7557ccb657054e867f4e27f4aa89cb25e
tree4ac649846f338f38988de729077a0a5d4535cc17
parentee750034252fb8f44c871e84a5057bc114699ae7
mmx: don't pack and unpack src unnecessarily

The combine function was store8888'ing the result, and all consumers
were immediately load8888'ing it, causing lots of unnecessary pack and
unpack instructions.

It's a very straight forward conversion, except for mmx_combine_over_u
and mmx_combine_saturate_u. mmx_combine_over_u was testing the integer
result to skip pixels, so we use the is_* functions to test the __m64
data directly without loading it into an integer register.

For mmx_combine_saturate_u there's not a lot we can do, since it uses
DIV_UN8.
pixman/pixman-mmx.c