r300/compiler: Fix two mistakes in the presubtract optimization pass.
authorTom Stellard <tstellar@gmail.com>
Sat, 25 Sep 2010 05:14:43 +0000 (22:14 -0700)
committerTom Stellard <tstellar@gmail.com>
Sat, 25 Sep 2010 21:53:25 +0000 (14:53 -0700)
commit522e994a22e8b46c8a41f2920af88c5ebad43cd8
treeb724c5fd55093d59439a53cef145fadec5dbb55c
parent1e35f6472df3341aca4d62eb3a3210603701c285
r300/compiler: Fix two mistakes in the presubtract optimization pass.

1. We can't turn an instruction into a presubtract operation if it
writes to one of the registers it reads from.
2. If we turn an instruction into a presubtract operation, we can't
remove that intruction unless all readers can use the presubtract
operation.

This fixes fdo bug 30337.
This is a candidate for the 7.9 branch.
src/mesa/drivers/dri/r300/compiler/radeon_optimize.c