gm107/ir: AL2P writes to a predicate register
authorIlia Mirkin <imirkin@alum.mit.edu>
Sat, 10 Sep 2016 16:53:37 +0000 (12:53 -0400)
committerIlia Mirkin <imirkin@alum.mit.edu>
Sat, 10 Sep 2016 17:36:20 +0000 (13:36 -0400)
We have to force it to write to predicate 7 (aka PT) in order for it not
to mess up another predicate. Unclear what would be returned in the
predicate, perhaps an error code for out-of-bounds requests. Blob
doesn't seem to check it.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Cc: mesa-stable@lists.freedesktop.org
src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gm107.cpp

index 791273faa0b639628ad1b30827fc831511c575f8..cfde66cd4ed57f9c0b1957c6e3119bbbbaaef44c 100644 (file)
@@ -2307,6 +2307,7 @@ CodeEmitterGM107::emitAL2P()
 {
    emitInsn (0xefa00000);
    emitField(0x2f, 2, (insn->getDef(0)->reg.size / 4) - 1);
+   emitPRED (0x2c);
    emitO    (0x20);
    emitField(0x14, 11, insn->src(0).get()->reg.data.offset);
    emitGPR  (0x08, insn->src(0).getIndirect(0));