summaryrefslogtreecommitdiffstats
path: root/src/gallium
diff options
context:
space:
mode:
authorTrevor Davenport <[email protected]>2011-05-27 10:25:40 +0200
committerChristoph Bumiller <[email protected]>2011-05-27 10:25:40 +0200
commit828b26b7ebe7e4c756a6cfde04646e8a112166ac (patch)
treeaf3b4e86bce100322bfb1807698839f8d1987d9a /src/gallium
parent4609e80288bacf19af99b0ed7656eef9bb280912 (diff)
nv50: fix emit_add_a16 to emit correct source reg
emit_add_a16 was using the incorrect source. This caused adds in the form of: add u16 $a0 s32 $a1 u32 0x00000200 to have a source AREG of $a0 instead of $a1. Fixes World of Warcraft in OpenGL and D3D without GLSL.
Diffstat (limited to 'src/gallium')
-rw-r--r--src/gallium/drivers/nv50/nv50_pc_emit.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/gallium/drivers/nv50/nv50_pc_emit.c b/src/gallium/drivers/nv50/nv50_pc_emit.c
index 252c58dd8ff..600850da011 100644
--- a/src/gallium/drivers/nv50/nv50_pc_emit.c
+++ b/src/gallium/drivers/nv50/nv50_pc_emit.c
@@ -744,8 +744,8 @@ emit_add_a16(struct nv_pc *pc, struct nv_instruction *i)
set_pred(pc, i);
- if (i->src[1])
- set_a16_bits(pc, SREG(i->src[1])->id + 1);
+ if (s && i->src[0])
+ set_a16_bits(pc, SREG(i->src[0])->id);
}
static void