i965/fs: Fix register unspills from a reg_offset.

We were clearing the reg_offset before trying to use it.  Oops.  Fixes
glsl-fs-texture2drect with the reg spilling debug enabled.

Reviewed-by: Paul Berry <stereotype441@gmail.com>
This commit is contained in:
Eric Anholt 2013-10-16 12:39:07 -07:00
parent 0e20051f54
commit 32182bb004

View file

@ -677,13 +677,13 @@ fs_visitor::spill_reg(int spill_reg)
if (inst->src[i].file == GRF &&
inst->src[i].reg == spill_reg) {
int regs_read = inst->regs_read(this, i);
int subset_spill_offset = (spill_offset +
reg_size * inst->src[i].reg_offset);
inst->src[i].reg = virtual_grf_alloc(regs_read);
inst->src[i].reg_offset = 0;
emit_unspill(inst, inst->src[i],
spill_offset + reg_size * inst->src[i].reg_offset,
regs_read);
emit_unspill(inst, inst->src[i], subset_spill_offset, regs_read);
}
}