From 2c695d38e6b194572becf82300fba5e34b1fd7d7 Mon Sep 17 00:00:00 2001 From: Christoph Bumiller Date: Sat, 31 Jul 2010 20:56:42 +0200 Subject: nv50: don't eliminate loads to dedicated values --- src/gallium/drivers/nv50/nv50_pc_optimize.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/gallium/drivers/nv50/nv50_pc_optimize.c b/src/gallium/drivers/nv50/nv50_pc_optimize.c index 1f2f1630f4..324f8bb2da 100644 --- a/src/gallium/drivers/nv50/nv50_pc_optimize.c +++ b/src/gallium/drivers/nv50/nv50_pc_optimize.c @@ -639,12 +639,10 @@ nv_pass_reload_elim(struct nv_pass_reld_elim *ctx, struct nv_basic_block *b) break; if (it) { -#if 1 - nvcg_replace_value(ctx->pc, ld->def[0], it->value); -#else - ld->opcode = NV_OP_MOV; - nv_reference(ctx->pc, &ld->src[0], it->value); -#endif + if (ld->def[0]->reg.id >= 0) + it->value = ld->def[0]; + else + nvcg_replace_value(ctx->pc, ld->def[0], it->value); } else { if (ctx->alloc == LOAD_RECORD_POOL_SIZE) continue; -- cgit v1.2.3