diff options
author | Eric Anholt <[email protected]> | 2011-09-23 13:52:47 -0700 |
---|---|---|
committer | Eric Anholt <[email protected]> | 2011-09-26 15:33:42 -0700 |
commit | 39790b6450b770cd402bc08b9416cab67de3dedb (patch) | |
tree | 121cd4ee45e5ae8b31ba617d3d3c93a05d9619e0 /src/mesa/drivers | |
parent | 8004a1cb95b8a195f3f4bbaa8d39d2f3297167de (diff) |
i965/vs: Fix access beyond array bounds for non-GRF operands.
Caught by valgrind. I never saw a segfault from it (probably because
it's hard to have much more of any other file than GRF).
Diffstat (limited to 'src/mesa/drivers')
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_vec4_copy_propagation.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_vec4_copy_propagation.cpp b/src/mesa/drivers/dri/i965/brw_vec4_copy_propagation.cpp index e0b2d2abf2b..a5f6f93879a 100644 --- a/src/mesa/drivers/dri/i965/brw_vec4_copy_propagation.cpp +++ b/src/mesa/drivers/dri/i965/brw_vec4_copy_propagation.cpp @@ -241,9 +241,6 @@ vec4_visitor::opt_copy_propagation() * optimizing out access to the copy result */ for (int i = 2; i >= 0; i--) { - int reg = (virtual_grf_reg_map[inst->src[i].reg] + - inst->src[i].reg_offset); - /* Copied values end up in GRFs, and we don't track reladdr * accesses. */ @@ -251,6 +248,9 @@ vec4_visitor::opt_copy_propagation() inst->src[i].reladdr) continue; + int reg = (virtual_grf_reg_map[inst->src[i].reg] + + inst->src[i].reg_offset); + /* Find the regs that each swizzle component came from. */ src_reg *values[4]; |