freedreno/ir3: fix indirects tracking
authorRob Clark <robclark@freedesktop.org>
Thu, 2 Jul 2015 17:52:38 +0000 (13:52 -0400)
committerRob Clark <robclark@freedesktop.org>
Fri, 3 Jul 2015 12:56:09 +0000 (08:56 -0400)
commit6b9f5cd5f7b25e9e03104fe279df74817f69fe87
treef73fcf483f51dcff5d4eded53718bb2147f1e27b
parent0a155538eb7e7870b99fb8b3fd8e2a268361d2c8
freedreno/ir3: fix indirects tracking

cp would update instr->address but not update the indirects array
resulting in sched getting confused when it had to 'spill' the address
register.  Add an ir3_instr_set_address() helper to set instr->address
and also update ir->indirects, and update all places that were writing
instr->address to use helper instead.

Signed-off-by: Rob Clark <robclark@freedesktop.org>
src/gallium/drivers/freedreno/ir3/ir3.c
src/gallium/drivers/freedreno/ir3/ir3.h
src/gallium/drivers/freedreno/ir3/ir3_compiler_nir.c
src/gallium/drivers/freedreno/ir3/ir3_cp.c
src/gallium/drivers/freedreno/ir3/ir3_sched.c