i965/fs: Avoid register coalescing away gen6 MATH workarounds.
authorKenneth Graunke <kenneth@whitecape.org>
Sat, 19 Feb 2011 09:05:11 +0000 (01:05 -0800)
committerKenneth Graunke <kenneth@whitecape.org>
Tue, 22 Feb 2011 18:52:44 +0000 (10:52 -0800)
commit2c2686b912de19a430aba9f5ea5fa679eabdc5c6
tree25682e28718d2c1e7af627c3c12ee9abebbb15a7
parent72cd7e87d35e96fad9643f1cee706a8568fa3fa1
i965/fs: Avoid register coalescing away gen6 MATH workarounds.

The code that generates MATH instructions attempts to work around
the hardware ignoring source modifiers (abs and negate) by emitting
moves into temporaries.  Unfortunately, this pass coalesced those
registers, restoring the original problem.  Avoid doing that.

Fixes several OpenGL ES2 conformance failures on Sandybridge.

NOTE: This is a candidate for the 7.10 branch.

Reviewed-by: Eric Anholt <eric@anholt.net>
src/mesa/drivers/dri/i965/brw_fs.cpp