From: Trevor Davenport Date: Fri, 27 May 2011 08:25:40 +0000 (+0200) Subject: nv50: fix emit_add_a16 to emit correct source reg X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=828b26b7ebe7e4c756a6cfde04646e8a112166ac;p=mesa.git 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. --- 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