diff options
author | Rob Clark <[email protected]> | 2016-01-15 18:22:40 -0500 |
---|---|---|
committer | Rob Clark <[email protected]> | 2016-01-16 14:23:20 -0500 |
commit | 6a33c5c0dffce136bdc95daa2db2d3e9d3c1741f (patch) | |
tree | e8fe0fde1b2df33a17d9e08ca58035ca42c294be /src/gallium/drivers/freedreno/ir3/ir3.c | |
parent | ddede497b831fb98e3540247b570968532cdacc9 (diff) |
freedreno/ir3: array offset can be negative
It at least happens with some piglit tests, like
$piglit/bin/vp-address-01
VERT
DCL IN[0]
DCL IN[1]
DCL OUT[0], POSITION
DCL OUT[1], COLOR
DCL CONST[0..7]
DCL ADDR[0]
0: ARL ADDR[0].x, IN[1].xxxx
1: MOV_SAT OUT[1], CONST[ADDR[0].x-1]
2: DP4 OUT[0].x, CONST[4], IN[0]
3: DP4 OUT[0].y, CONST[5], IN[0]
4: DP4 OUT[0].z, CONST[6], IN[0]
5: DP4 OUT[0].w, CONST[7], IN[0]
6: END
Signed-off-by: Rob Clark <[email protected]>
Diffstat (limited to 'src/gallium/drivers/freedreno/ir3/ir3.c')
-rw-r--r-- | src/gallium/drivers/freedreno/ir3/ir3.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/gallium/drivers/freedreno/ir3/ir3.c b/src/gallium/drivers/freedreno/ir3/ir3.c index be415d8e5fe..7d89142d7a1 100644 --- a/src/gallium/drivers/freedreno/ir3/ir3.c +++ b/src/gallium/drivers/freedreno/ir3/ir3.c @@ -126,7 +126,7 @@ static uint32_t reg(struct ir3_register *reg, struct ir3_info *info, if (reg->flags & IR3_REG_RELATIV) { components = reg->size; - val.dummy10 = reg->array.offset; + val.idummy10 = reg->array.offset; max = (reg->array.offset + repeat + components - 1) >> 2; } else { components = util_last_bit(reg->wrmask); |