i965: Fix loads of non-relative-addr constants after a reladdr load.

Fixes piglit vp-arl-constant-array-huge-overwritten.
(cherry picked from commit d5b964234c)
This commit is contained in:
Eric Anholt 2010-01-09 02:03:13 -08:00
parent a2c402ba53
commit 8ce99c85e7

View file

@ -770,7 +770,13 @@ get_constant(struct brw_vs_compile *c,
if (c->current_const[argIndex].index != src->Index || relAddr) {
struct brw_reg addrReg = c->regs[PROGRAM_ADDRESS][0];
c->current_const[argIndex].index = src->Index;
/* If using a non-relative-addressed constant, then keep track of it for
* later use without reloading.
*/
if (relAddr)
c->current_const[argIndex].index = -1;
else
c->current_const[argIndex].index = src->Index;
#if 0
printf(" fetch const[%d] for arg %d into reg %d\n",