freedreno: fix temp register usage
authorRob Clark <robclark@freedesktop.org>
Wed, 24 Apr 2013 14:44:56 +0000 (10:44 -0400)
committerRob Clark <robclark@freedesktop.org>
Thu, 25 Apr 2013 01:09:46 +0000 (21:09 -0400)
commitd086bb22bce6c9ed0afeb782ccd4ba6fa2561e02
treecfa92a94b2a86370403f1863dd12eaee1f6fc2df
parent7a837da556c17a8dc5eb7c609ba2cf4628c2c310
freedreno: fix temp register usage

The previous approach of using the dst register as an intermediate
temporary doesn't work in a lot of cases.  For example, if the dst
register is the same as one of the src registers.

For now, just simplify it and always allocate a new register to use as
an intermediate.  In some cases this will result in more registers used
than required.  I think the best solution would be to implement an
optimization pass to reduce the number of registers used, which would
also solve the problem we have now of not being able to use GPRs that
are assigned for TGSI_FILE_INPUT.

Signed-off-by: Rob Clark <robclark@freedesktop.org>
src/gallium/drivers/freedreno/freedreno_compiler.c