nv50/ir: fix emission of address reg in 3rd source

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91056
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: "10.5 10.6" <mesa-stable@lists.freedesktop.org>
(cherry picked from commit d5f1253b0c)
This commit is contained in:
Ilia Mirkin 2015-06-30 02:46:26 -04:00 committed by Emil Velikov
parent e00aab1654
commit a70904bc78

View file

@ -499,10 +499,14 @@ CodeEmitterNV50::emitForm_MAD(const Instruction *i)
setSrc(i, 2, 2);
if (i->getIndirect(0, 0)) {
assert(!i->getIndirect(1, 0));
assert(!i->srcExists(1) || !i->getIndirect(1, 0));
assert(!i->srcExists(2) || !i->getIndirect(2, 0));
setAReg16(i, 0);
} else {
} else if (i->srcExists(1) && i->getIndirect(1, 0)) {
assert(!i->srcExists(2) || !i->getIndirect(2, 0));
setAReg16(i, 1);
} else {
setAReg16(i, 2);
}
}